Schau nochmal in die Hilfe zu dem Befehl. Stichwort: FileOpen.
Beiträge von autoiter
-
-
Hallo @hevilp,
dein Problem ist ja gelöst. Setze den Thread doch bitte auf gelöst. Das geht oben beim ersten Beitrag.
-
Ach was, lass dich mal nicht entmutigen. Ist doch eigentlich gut, wenn man in einem Skript, das einen interessiert gleich viele Teilbereiche einüben kann.
-
Hallo @Neight
Noch ein Hinweis zu deinem Speichern in der Datenbank. Der Query-String ist nicht ganz richtig.Erst einmal ist es sinnlos die Nummer bei Insert anzugeben, weil das ja dein Primary Key ist. Das heißt du kannst dir auch das Inputfeld bei New sparen. Außerdem schreibst du die Inputs als wären sie ein Array. Das ist falsch. Die eckigen Klammern müssen da weg.
-
Hehe, ich meinte schon meinen eigenen Beitrag
-
Hey @Cape-City,
das ist kein sinnvoller Beitrag. Ich habe den Fehler nicht gefunden und konnte auch kein Speicherleck feststellen.
Ab einem gewissen Zeitpunkt wurde die GUI einfach nicht mehr korrekt dargestellt. Vielleicht wird nicht richtig hinter den GDIPlus-Befehlen aufgeräumt? Ich habe mit GDIPlus aber bisher so gut wie nichts gemacht und keine Ahnung.Ich habe mir nur gedacht, dass du Rückmeldung verdienst und bekommen solltest, weil du auch noch keine Beiträge hattest. Es gibt ja wenig Schlimmeres, als wenn man sich aus der Deckung wagt und keiner reagiert.
Die Demo sieht für mich sehr gut aus! Ich hoffe, es meldet sich bald ein Kenner, der dir helfen kann -
Hallo @hevilp,
es geht also nicht um eine Fehlermeldung, sondern du möchtest etwa in der Konsole mitverfolgen, welche Skriptzeile gerade ausgeführt wird. Das geht nicht.
Wenn es doch um eine Fehlermeldung eines kompilierten Skripts geht, dann gibt es hier irgendwo ein Beispiel. Ich glaube von @AspirinJunkie. -
Diese wird in 2 Do Schleifen nacheinader jeweils aufgerufen und verändert den jeweiligen Label immer ein wenig. Problem ist nur, das
irgendwann meine ganze GUI weiss wird, als würde ich einen MemoryLeak durch sie bekommen...Wenn ich herausgefunden habe, wie ich hier die komplette Demo anhängen kann, bzw. nur den Downloadlink zur ZIP Datei posten kann,
folgt diese natürlichHallo @Cape-City,
du müsstest wohl mehr von deinem Skript zeigen. Diese Funktion alleine hilft eher nicht..
Nimm mal testweise eine For-To-Schleife (die auf jeden Fall endet), statt deiner Do-Until Variante. Vielleicht hast du dich bei einer deiner Until-Bedingungen etwas vertan und sie wird nie erfüllt? (Dann würde das Skript ja die ganze Zeit in der Schleife hängen).Übrigens sieht das hier unten ziemlich krude aus. Man kann das wohl so machen, aber wahrscheinlich geht das besser.
ReDim $ahFontEx[UBound($ahFontEx) + 1]
$ahFontEx[0] += 1$ahFontEx[$ahFontEx[0]] = ...
-
Da schließe ich mich gerne an. Herzlichen Glückwunsch Raupi. Alles Gute
-
Alles klar. Sorry für miesepetern
-
-
Hi @skorpion-de,
du schaffst das schon und wenn nicht, wird dir hier geholfen.Allerdings halte ich das alles nicht für klug.
Schon mit einer Batch-Datei oder einem AutoIt-Skript die Keepass-Datenbank zu öffnen, finde ich hart. Aber OK, wer sucht schon da nach dem Passwort, wenn es nicht gerade "Keepass starten.bat" heißt. Heißt es doch auch nicht, oder???Das ganze aber aus einer ini zu laden, kommt mir total schräg vor.
Wenn man sich für einen digitalen Passwortmanager entscheidet, der alle wichtigen Passworte verschlüsselt, so dass ich nur noch ein sicheres Passwort brauche, so muss ich doch wenigstens auf dieses eine Passwort verdammt gut aufpassen! Den Passwortmanager sollte man auch nur dann entsperrt haben, wenn man ihn gerade braucht. So lange deine DB offen ist, kann sie einfach ausgelesen werden...
Ich will dir nichts schlechtreden. Der Komfort eines Passwortmanagers ist enorm. Aber wenn du die Sicherheit vergisst...
EDIT: Jetzt deinen Beitrag gelesen. Da haben wir uns überschnitten. Es ging also nicht um das PW sondern URLs. OK dann bleibt es nur bei der einen Datei, in der dein PW steht. Kann man wohl so machen.
-
Gerade ist mir noch aufgefallen, dass A) der Befehl WinActive den Firefox nicht aktiviert,wie du sicher wolltest und B) das auch wenn die Schleife dann mal klappt, das gespeicherte Bild einen variablen Namen braucht. Am einfachsten sollte die Nummer einfach der Wert von $i, dem Schleifendurchlauf, sein.
-
Hi @mak87,
Ich habe keine Lösung für dein Steuerproblem, da ich ja auch nicht die Seite kenne. Aber es gibt einerseits eine Firefox UDF und andererseits auch Controlsend, falls das Fenster gar nicht mehr aktiv war, als du deinen Befehl Send gesendet hast?
Hier mal dein Skript in einer For .. To Schleife:
AutoIt
Alles anzeigen#include <ScreenCapture.au3> ;WinWait("Firefox") WinActive("Firefox") For $i = 1 To 1000 ; Schleifendurchläufe bis $i den Wert 1000 hat (bei jedem Durchlauf + 1 also 1000 Durchläufe) ; Alles in dieser Schleife wird nun nacheinander so lange die Schleife läuft aufgerufen. Send("!{PRINTSCREEN}") FotoSpeichern() Sleep(3000) Send("{RIGHT}") ; 3 Sekunden warten bis die nächste Seite aufgerufen ist Sleep(3000) Next Ende("Fertig") Func FotoSpeichern() Local $hBmp ; Capture full screen $hBmp = _ScreenCapture_Capture("") ; Save bitmap to file _ScreenCapture_SaveImage(@MyDocumentsDir & "\GDIPlus_Image_005.jpg", $hBmp) ; ShellExecute(@MyDocumentsDir & "\GDIPlus_Image.jpg") EndFunc ;==>FotoSpeichern Func Ende($title, $text = "Fertig") MsgBox(0, $title, $text) EndFunc ;==>Ende
-
Aha. Wie der was gelernt. Da bedanke ich mich auch @Zeitriss
-
Sorry, ich habe die Funktion überhaupt nicht verstanden. Das Ergebnis gefällt mir auch nicht.
Ich will mich keineswegs mit Mars messen, der sein Konstrukt ja sogar blind geschrieben hat, aber ich würde es eher so machen:Spoiler anzeigen
AutoIt
Alles anzeigen#include <Array.au3> Local $aArray1[4] = ["1", "2", "3", "4"] Local $aArray2[12] = ["1", "2", "3", "4", "1", "2", "3", "4", "1", "2", "3", "4"] Local $aArray3[36] = ["1", "2", "3", "4", "1", "2", "3", "4", "1", "2", "3", "4", "1", "2", "3", "4", "1", "2", "3", "4", "1", "2", "3", "4", "1", "2", "3", "4", "1", "2", "3", "4", "1", "2", "3", "4"] Local $aArray4[3][2] ; In dieses Array werden je "Zeile" ein Array in "Spalte 1" und dessen Größe in "Spalte 2" geschrieben. $aArray4[0][0] = $aArray1 $aArray4[1][0] = $aArray2 $aArray4[2][0] = $aArray3 $aArray4[0][1] = UBound($aArray1) $aArray4[1][1] = UBound($aArray2) $aArray4[2][1] = UBound($aArray3) Local $iMaxSize = _ArrayMax($aArray4, 0, -1, -1, 1) ; Mit ArrayMax wird hier der höchste Wert aus SubItem 1 geholt (der höchste Größenwert der Arrays). Local $ArrayResult[$iMaxSize][3] ; Das Ergebnis-Array wird mit der größten Zeilenanzahl $iMaxSize und der Anzahl der Arrays deklariert. For $i = 0 To 2 ; Für die Anzahl der Arrays.. $TempArray = $aArray4[$i][0] ; Das jeweilige Array wird in ein anderes geschrieben, weil ich nicht weiß, wie man mit Arrays in Arrays besser umgeht ;) For $ii = 0 To $aArray4[$i][1] - 1 ; Die die Anzahl der Zeilen im jeweiligen Array.. $ArrayResult[$ii][$i] = $TempArray[$ii] ; Die jeweilige Zeile im Ergebnis-Array ($ii) in der Spalte ($i) wird mit der jeweiligen Zeile aus den Arrays gefüllt. Next Next _ArrayDisplay($ArrayResult)
-
Hallo @Zeitriss, @skorpion-de,
Leerzeichen sind hier überhaupt kein Problem.
@skorpion-de Schau mal in die Hilfe zu ShellExecute. Der Pfad zur Datenbank ist schon ein Parameter! Deinen Parameter Passwort gibst du als workingdir an
Es müsste wahrscheinlich so klappen:
-
Hallo @skorpion-de
Es sind überhaupt keine zusätzlichen Anführungszeichen notwendig. Einfach ShellExecute("VollerDateiPfad", "VollerDatenbankpfad".
Bsp: -
Guten Abend @Lanealine
Weißt du, dass dein Array nie mehr Werte beinhalten wird als die mal so festgelegten 100 und geht es dir nur darum, dass das Array am Ende viele Leerpositionen hat?Wenn es nämlich nur um das nachträgliche Verkleinern geht, finde ich es schon in Ordnung, mit einer vorher festgelegten Größe zu arbeiten. Wenn die ursprünglich festgelegte Größe auf jeden Fall ausreicht, dann brauchst du nicht bei jedem neuen Wert das Array zu vergrößern. Es genügt, am Ende das Array einmal auf die benötigte zu verkleinern.
Jedenfalls mache ich das gerne mal so...
AutoIt
Alles anzeigen#include <Array.au3> test() Func test() Local $aArray[100] Local $iMaxIndex = 0 ; In dieser Variable werden die Wertzuweisungen in das Array mitgezählt. For $i = 0 To 50 ; Nur mal als Beispiel, dass 50 Elemente hinzugefügt werden. $aArray[$i] = $i $iMaxIndex += 1 ; Bei jeder neuen Wertzuweisung in $aArray addieren wir 1 zu $iMaxIndex. Next ; Nach der Schleife hat $iMaxIndex den Wert 50 - also die Anzahl der Elemente, die nun wirklich in deinem Array sind. _ArrayDisplay($aArray, "Vor dem ReDim") ReDim $aArray[$iMaxIndex] ; Nun einmal mit ReDim $aArray auf die benötigte Größe schrumpfen. _ArrayDisplay($aArray, "Nach dem ReDim") EndFunc
-
Hi @dost0011
Array4 beinhaltet nach der Schleife die Inhalte von den anderen 3 Arrays.
AutoItLocal $Array1[1000] Local $Array2[1000] Local $Array3[1000] Local $Array4[1000][3] For $i = 0 To 999 ; Wenn wirklich dieser Wert in allen Arrays gleich ist! $Array4[$i][0] = $Array1[$i] $Array4[$i][1] = $Array2[$i] $Array4[$i][2] = $Array3[$i] Next
Das klappt so nur, wenn die wirklich alle gleich groß sind. Sonst stürzt dieser plumpe Ansatz ab