MessageBox in einem Fenster finden

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
dennbas
User
Beiträge: 25
Registriert: Mittwoch 28. September 2016, 10:20

Hallo zusammen,

ich möchte in einem gefunden Fenster schauen ob dort eine MsgBox geöffnet ist.

Das Fenster um das es geht, habe ich bereits gefunden, nur wie kann ich da nun schauen ob da eine MessageBox ( Fehlermeldung ) offen ist ?


Im Voraus vielen Dank.


VG,
Dennis
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Da fehlt ganz viel Kontext. Betriebssystem, benutzte Bibliotheken, am besten Code den du schon hast.
Benutzeravatar
pixewakb
User
Beiträge: 1408
Registriert: Sonntag 24. April 2011, 19:43

Hilft Dir so etwas:

https://pyautogui.readthedocs.io/en/lat ... -functions

Nur mal zur Info (wie __deets__ ): Du könntest genauer beschreiben, was du schon gemacht hast, wie weit du gekommen bist (Quellcode-Ausschnitt) und was du eigentlich willst. Momentan ist das für andere wahrscheinlich eher raten...
dennbas
User
Beiträge: 25
Registriert: Mittwoch 28. September 2016, 10:20

OS ist Windows. Lib zum suchen der Fenster win32gui.

Code habe ich gerade nicht da.

Ich habe nen Script was alle Fensternamen ausgibt und bekomme vom gewünschten Fenster das Handle.

Mit diesem Handle will ich nun wissen ob das gefunden Programm aktuell eine Fehlermeldung ausgibt.
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich bezweifle stark, dass das (so) geht. Du kannst ggf irgendwelche window flags auswerten in der Hoffnung, das die spezifisch sind. Aber was als Inhalt ausgegeben wird ist ja völlig beliebig. Wenn ich will, male ich unter Umgehung aller Standardfunktionen einfach Pixel rein, die eine Fehlermeldung darstellen.

Wenn kannst du probieren den Inhalt als Pixelbuffer abzugreifen & zu schauen, ob da was matcht.
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@__deets__: es ist doch recht unwahrscheinlich, dass ein bestimmtes Programm Pixel malt.

@dennbas: Wenn Du schon die Prozess-ID hast, dürfte es doch kein Problem sein, dazu auch alle Msg-Windows zu finden und anhand des Titels, etc. festzustellen, ob das eine Fehlermeldung ist. Das ist wohl das konkreteste, was man zu Deinen vagen Andeutungen sagen kann.
dennbas
User
Beiträge: 25
Registriert: Mittwoch 28. September 2016, 10:20

erstmal vielen Dank für die Tipps.

also Option 1 wäre zwei Bilder zu vergleichen um damit herauszufinden ob die Fehlermeldung sichtbar ist oder nicht.

Option 2 wäre ein Logg aller "Msg-Windows" und darüber zu merken, dass eine Fehlermeldung ausgegeben wurde.


Zu 1 wäre dann wohl mit PyAutoGUI

wie könnte ich 2 umsetzen ?
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

So wie Du geschrieben hast, hast Du schon alles um Option 2 umzusetzen. Option 1 ist nicht wirklich sinnvoll umsetzbar.
dennbas
User
Beiträge: 25
Registriert: Mittwoch 28. September 2016, 10:20

Hallo erneut,

hab da nun ein wenig rumversucht mit MS Spy++ .

Leider ist es so dass das Fenster ein Java-Applet ist so dass die MSGS recht spärlich sind, da das Applet ja in einer art Sandbox läuft...

Daher bleibt wohl doch nur die Screen Lösung, oder ?
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Sirius3: Ist also doch nicht so unwahrscheinlich das ein Programm Pixel malt. :-)
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Ich dachte, es geht um Windows, nicht um Java.
dennbas
User
Beiträge: 25
Registriert: Mittwoch 28. September 2016, 10:20

ja sorry, dachte bis heute morgen auch es sei eine normale WIN-APP
dennbas
User
Beiträge: 25
Registriert: Mittwoch 28. September 2016, 10:20

also gelöst wurde es nun mit pyautogui , eine Ecke der Fehlermeldung als PNG gespeichert, dann nach jedem Klick suche ich 20 sec nach dem Bild wenn er nichts findet, weiß ich, dass die Fehlermeldung nicht aufgepoppt ist.

Danke nochmal an alle Beteiligten.
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Sirius3 hat geschrieben: Montag 8. Oktober 2018, 18:17 So wie Du geschrieben hast, hast Du schon alles um Option 2 umzusetzen. Option 1 ist nicht wirklich sinnvoll umsetzbar.
Anscheinend schon: https://pyautogui.readthedocs.io/en/lat ... nshot.html
Antworten