Software incl. Abfrage beenden

  • Hallo Zusammen!

    Bin neu und vollkommen unerfahren mit AutoIt.
    Nach Stundenlangem googeln bin ich der Auffassung, dass mir nur hier weitergeholfen werden kann.

    Mein Vorhaben: Ein Rechner soll beim Start den VLC-Player mit einer Playlist und auf einem 2. Monitor die Überwachungssoftware "iVMS-4200" starten und mir das Bild einer Überwachungskamera zeigen. Zu einer bestimmten Uhrzeit soll der Rechner dann die Programme beenden und herunterfahren.
    VLC, start des Überwachungsprogramms und automatisches herunterfahren klappen sehr gut mit Win-Boardmitteln.

    Nun suche ich ein Script, welches mir die Überwachungssoftware schließt. Habe es mit dem Batchbefehl "taskkill" probiert, dass schießt mir das Programm allerdings komplett ab. Das Problem bei der Sache ist, dass ich beim beenden des Programms in einem Popup-Fenster mit Überschrift "Exit" auf den Button "Confirm" clicken muss, da mir ansonsten beim nächsten Start die Kameraeinstellungen flöten gegangen sind und ich die neu anwählen muss. Clicke ich auf "Confirm", fährt das Programm ordentlich runter und beim nächsten Start sehe ich die Kamera direkt wieder auf dem 2. Monitor.

    Kann mir Jemand dabei behilflich sein und eventuell sogar das Script schreiben?

    Betriebssystem ist Win7pro, falls das behilflich ist.

    Ich danke schonmal im Vorraus für eure Hilfe!

  • Kannst du mal nen Screenshot von dem Popupfenster schicken?

    So wie sich das bei dir anhört, scheint WinClose() das Richtige zu sein.
    Dann kommt das Popupfenster und das kann man (!normalerweise!) direkt ansprechen z.B. mit ControlClick ().

    Lg NO1 :)

  • Hallo, guten Abend und vielen Dank für eure Antworten!

    Anbei sende ich den Screenshot des Fensters und von Au3Info. Ich hoffe ihr könnt damit etwas anfangen. ?( Besten Dank vorab!

    Au3info.JPGExit.JPG

  • Hallo alpines,

    Im ganzen "Exit"-Fenster zeigt der Finder die gleichen Daten an, egal ob ich auf die Überschrift zeige oder den "Confirm"-Button

    Stehen die Chancen somit schlecht eine Lösung zu finden? ;(

    Beste Grüße!

  • @thomasaausr

    Du kannst das Fenster nicht direkt ansprechen. Ist im Exit-Fenster einer der beiden Buttons vorausgewählt und das Fenster aktiviert könntest du mit send einen {ENTER} Tastendruck zur Bestätigung senden, ist aber unzuverlässig. Du kannst auch MouseClick() verwenden, um den Button zu drücken, ist aber nicht unbedingt zuverlässig...

    Lg NO1 :)

  • Hallo thomasaausr,

    Es gibt noch die Möglichkeit den Button mittels der ImageSearch.dll (also per Bildsuche) zu lokalisieren und anzuklicken.
    UDF und Dll haben hier zwar einen miesen Ruf, aber ich habe damit bereits gute Erfahrungen gemacht, wenn ich Controls einer GUI nicht auf andere Weise erfolgreich bedienen konnte.
    Hier soll das Fenster deiner Überwachungssoftware gesucht werden und mit WinClose das Schließen probiert werden. Dann sollte das Bestätigungsfenster erscheinen. Es wird 20 Sekunden danach gesucht und im Erfolgsfall auf Confirm geklickt. Klappt etwas nicht, sollte eine Meldung erscheinen. Einen Versuch ist es vielleicht wert..

    Spoiler anzeigen

    Im Anhang findest du einen gepackten Ordner mit Skript, Dll und einer Bilddatei. Bei dem Bild handelt es sich um einen Ausschnitt des Buttons, den du drücken willst. Die Bilddatei musst du bei dir noch einmal selbst erstellen und die vorhandene Datei ersetzen (gleicher Name!). Nimm für den Screenshot am Besten das Snipping Tool von Windows (Startmenü->Windows Zubehör).

  • Hallo Zusammen!

    autoiter:
    Vielen Dank für deine Hilfe, das hat sicher einiges an Zeit in Anspruch genommen. Leider bekomme ich kurz nach dem Start des Scripts die Meldung:

    Fehler.PNG

    Die Datei Confirm.png habe ich wie von dir beschrieben neu aufgenommen und gegen die Datei aus deiner ZIP ersetzt. Muss ich das Script oder das PNG an einem bestimmten Ort ablegen? Habe es jetzt einfach im entpackten Ordner "Test" in der Dokumente-Bibliothek abgelegt.


    NO1 :-):

    Auch dir vielen Dank für deine Hilfe. Das Exit-Fenster hat keine Vorauswahl, die Farbe der Buttons ändert sich beim Mouseover, sonst leider kein Unterschied zwischen "Confirm" und "Cancel"

  • Am Anfang des Skripts steht eine Verzweigung, in der geprüft wird, ob das Fenster von deinem Überwachungsprogramm überhaupt offen ist.

    AutoIt
    If WinExists("[CLASS:QWidget]") Then

    Wenn das Fenster nicht gefunden wird, kommt diese Meldung. Ich bin anhand deines Screenshots davon ausgegangen, dass diese Angabe ausreicht, um das Fenster zu identifizieren. Offensichtlich stimmt das nicht.

    Warte mal ab, ob das nicht jemand hier aufklären kann. Ich bin eher nicht der Überprofi..

    Grüße autoiter

  • Kann es damit zu tun haben, das die Anzeige der Überwachungssoftware auf dem 2. Monitor läuft?

  • Hallo Kanashius,

    leider bin ich völlig blind in Bezug auf die Befehle... ?( Was genau muss tun um mit _ScreenCapture_Capture("file.png") zu testen??

    Sorry, mit mir habt ihr es nicht einfach :rolleyes:

  • Da habe ich mich aber gestern so richtig verkuckt. Ich dachte irgendwie es geht um die Meldung Fenster nicht gefunden..

    Kanashius hat recht. Hier ist meine Rückmeldung einfach irreführend. Der Text erscheint, wenn der Bildinhalt bei der Suche nicht gefunden wird. Neben seinen Tipps versuche es auch mal mit der Änderung der ersten Zeile des Skripts.

    AutoIt
    ; Von:
    #AutoIt3Wrapper_UseX64=y
    
    
    ; Zu:
    #AutoIt3Wrapper_UseX64=n

    Grüße autoiter

  • Im ganzen "Exit"-Fenster zeigt der Finder die gleichen Daten an, egal ob ich auf die Überschrift zeige oder den "Confirm"-Button

    Nur mal der Richtigkeit halber... wenn du dir die Daten für ein Control angezeigen lassen willst, musst du auch den entsprechenden Tab in dem AutoIt Info-Tool aktivieren!

    Bei "QWidget" ist das jedoch nicht von Bedeutung, weil... allgemein verständlich ausgedrückt... du da eh keine Infos bekommst, da AutoIt mit QWidget nichts anfangen kann.

    Control.jpg

  • Hallo Zusammen!

    Ich hoffe ihr hattet einen schönen Feiertag! Ich war ein paar Tage verreist, deshalb erst jetzt meine Rückmeldung. Vielen, vielen Dank dass ihr euch so viel Zeit mit mir nehmt!

    Kanashius:

    Ich habe wie von dir beschrieben ein Bild mit ScreenCapture erstellen lassen:
    Monitor1:
    capture.png

    Monitor2: (Aufnahme mit snippingtool)
    Monitor2.JPG

    Das PNG zeigt von ScreenCapture zeigt meinen Hauptbildschirm, auf welchem allerdings im Betrieb der VLC-Player im Vollbild laufen soll. Das Überwachungsprogramm läuft auf dem 2.Monitor, welcher als erweiterter Desktop fungiert. Ich habe versucht testweise das Programm auf Monitor1 zu verschieben, dort schließt das Script auch das Exit-Fenster, das Programm läuft aber weiterhin und die Fehlermeldung "Confirm.png konnte nicht gefunden werden" erscheint noch immer.

    autoiter:
    Deinen Tip, den Wert in der ersten Zeile zu ändern habe ich ausprobiert. Leider ohne Auswirkung, Fehlermeldung kommt weiterhin, egal ob ich Das Programm auf Monitor1 oder 2 anzeigen lasse.

    Was ich bis jetzt nicht beobachtet habe aber erfolgreich testen konnte: wenn ich das Programm über die Taskleiste -> rechte Maustatse -> Programm beenden versuche zu schließe, erscheint das Exit-Fenster mit vorausgewähltem Confirm-Button. Ein einfaches betätigen der ENTER-Taste reicht dann um das Programm sauber zu beenden. Kann man in diese Richtung evtl. etwas ausprobieren?

    Bitnugger:
    Danke für den Tipp, ist notiert!

  • Hallo noch einmal,

    ich konnte die für mich nicht ganz einfache Aufgabe jetzt doch selbst lösen. Sollte es irgendwann mal jemanden helfen, hier mein Lösungsweg:

    Beim hochfahren habe ich im Autostart eine batch-Datei abgelegt die zuerst den VLC startet, danach einen timeout von 30 Sekunden und im Anschluß das Überwachungsprogramm startet. Somit bleibt mir über die Laufzeit bis zum herunterfahren das Überwachungsprogramm im Vordergrund angewählt.

    Zum herunterfahren habe ich eine batch geschrieben die wieder zuerst über "taskkill /f /IM vlc.exe" den VLC abschießt, dann einen "timeout /t 10" und mit "taskkill /IM iVMS-4200.exe" (WICHTIG: ohne /f ) das Überwachungsprogramm versucht zu killen. Somit erscheint das Exit-Fenster. Zum bestätigen habe ich nach einem weiteren timout von 30 Sekunden den Enter-Befehl über AutoIt (send ( {Enter} ) ) eingefügt. Somit wird das Programm sauber geschlossen und kann beim erneuten hochfahren mit allen Voreinstellungen ordentlich geladen werden.
    close.JPG

    Die batchdatei wird über die Aufgabenplanung zum gewünschten Zeitpunkt ausgeführt. Zum Schluß wird noch eine Minute später eine weitere batch mit dem shutdown befehl über die Aufgabenplanung ausgeführt.

    Ich danke allen Hilfestellern!