Hallo,
ich bin dabei einen Konvertierungprozess für ein Grafikprogramm zu bauen.
Die Ablauf ist eigentlich ganz simpel PGM mit Parameter aufrufen -> sichern auswählen -> ok bestätigen -> PGM beenden
Zwischen den Einzelschriiten wird mit sleep() gewartet, das sich die Fenster korrekt aufbauen. Das funktioniert auch im großen und ganzen gut, nur wenn große Dateien eingelesen werden kommt dere Befehl zum sichern zu früh. Der Einleseprozess wird über ein Fenster angezeigt. Ich habe jetzt versucht diese Fenster "einzufangen", das ist mir nicht gelungen.
1. Problem, ich kann das Fenster über den Tietel nich einwandfrei zuordnen, denn alle Fenster nach dem Start heissen gleich, unterscheiden sich nur durch den Text
2. Wenn ich versuche den Text an dieser Stelle mit WinGetText auslesen bekomme ich bei eingabe des Fensternames eine leere Variable zurück, versuche ich es mit "aktive" bekomme ich eine 1
3. Wenn ich Mit dem Tool windows Info auf das Fenster Klicke bekomme ich keine Info zurück
Was kann ich machen um das Ende des Einleseprozesses mitzubekommen. Danke
Gruss
Griessbx
Status eines Fensters abfragen
-
- [ offen ]
-
griessbx -
21. Januar 2015 um 13:55 -
Erledigt
-
-
Hallo
Wenn das Fenster wirklich nicht gehandled werden kann, stellt sich die Frage ob ImageSearch für dich in Frage kommt. (Screenshot des "Sichern" Buttons nachdem gesucht warden soll)?
Grüße
-
Hallo,
hast dus schonmal mit "WinWaitActive" probiert?
Gruß Qu1cks3r
-
Hi,
> hast dus schonmal mit "WinWaitActive" probiert?Das is ja gerade mein Problem, es kommen je nach Ablauf 1 - 3 Fenster hoch die zwar nicht beantwortet werden müssen aber alle den gleichen Namen haben. Also kann ich das Fenster nicht eindeutig benennen auf das ich gegebenenfalls warten muss
Gruss
griessbx -
Hallo,
ich habe das mit ImageSearch probiert, komme damit aber absolut nicht klar. hier mein code:HotKeySet("b", "Start")
HotKeySet("e", "Ende")Global $y = 0 , $x = 0
While 1
Sleep(1)
WEndFunc Start()
; Send("Gestartet")
While 1
$result = _ImageSearch("finde.bmp",1,$x,$y,0)
If $result = 1 Then
Sleep(1000)
Send("gefunden")
EndIf
WEndEndFunc
Func Ende()
exit(1)
EndFuncErgebnis ist: Bei der Compilierten Version bekomme ich : "Subscript used on non-accessible variable", wenn das ganze als script läuft gibt es einen Windows Abbbruch: Autoit funktioniert nicht mehr"
Ich habe beim Suchen nach ImageSearch ein paar Hinweise auf Scripte hier im Forum die den Funktionsumfang enthalten sollen. Ich finde diese aber leider nicht.
Für Tips und Hilfe dankbar
Gruss
griessbx -
Hallo,
für meine Anwendung ist auch ImageSearch keine Lösung, da während des Ladevorgangs der Datei (dessen Länge ich überwachen will) die ganze Anwendung einfach "busy" ist also auf nichts reagiert. Meine Frage, kann man nicht diesen Status irgenwie abfragen, nach dem Motto wenn Busy dann warten, wenn nicht mache weiter
Bin Dankbar für jeden Tip
Grusss Griessbx -
Hallo,
für meine Anwendung ist auch ImageSearch keine Lösung, da während des Ladevorgangs der Datei (dessen Länge ich überwachen will) die ganze Anwendung einfach "busy" ist also auf nichts reagiert. Meine Frage, kann man nicht diesen Status irgenwie abfragen, nach dem Motto wenn Busy dann warten, wenn nicht mache weiter
Bin Dankbar für jeden Tip
Grusss GriessbxOhne konkrete Angaben um was es hier genau geht (welches Grafikprogramm?) lässt sich das nur schwer sagen. Du könntest Referenzzeiten erstellen.
Sprich du lädst Dateien versch. Größe in das Programm, misst die Ladezeiten und erstellst eine Formel. Dann überprüfst du vorher die Größe der Datei und erstellst ungefähr eine Ladezeit.
Alle Bilder/Dateigrößen werden in einem Array gespeichert etc.
Beispiel:
Referenzladezeit: t_ref in sek./MB
Ladezeit für Bild: t in sek.
Offset Zeit: t_off in sek.
Größe des Bilds in MB: xt = t_ref * x + t_off
t_off wäre z.B. die Zeit die bei jedem Bild, unabhängig der Größe, zusätzlich hinzukommt.
Zwar umständlich, aber wie oben schon gesagt, ohne konkrete Angaben welches Grafikprogramm, welches window gehandled werden soll etc. kann ich dir nicht weiter helfen