Status eines Fensters abfragen

  • 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

  • Hallo,

    hast dus schonmal mit "WinWaitActive" probiert?


    Gruß Qu1cks3r

    ~~MBI~~

    _______________________________

    everything is possible with AutoIT

    ___________________________

  • 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)
    WEnd

    Func Start()
    ; Send("Gestartet")
    While 1
    $result = _ImageSearch("finde.bmp",1,$x,$y,0)
    If $result = 1 Then
    Sleep(1000)
    Send("gefunden")
    EndIf
    WEnd

    EndFunc

    Func Ende()
    exit(1)
    EndFunc

    Ergebnis 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 Griessbx

    Ohne 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: x

    t = 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 :/