Hallo,
ich möchte mit meinem Programm gern erkennen ob ein bestimmtes Fenster (FehlermeldungXY) aufgegangen ist und dieses dann über den OK Butten schließen.
Ich dachte an eine Schleife, die dauerhaft prüft ob ein bestimmter Fenstername/ Prozess in Windows auftaucht. Wenn dieses Fenster gefunden wurde soll dorthin gewechselt werden und meinetwegen mit dem TAB so lange die Kästchen weitergeschaltet werden bis der OK Button kommt und diesen dann betätigen. Die Anzahl der Tab Betätigungen würde ich vorher abzählen.
Mit welchem Package kann man soetwas programmieren?
Bei meinen bisherigen Suche kam ich leider immer nur zu tkinter und Co, wo man selber GUIs erstellen kann aber nicht bestehende steuern kann.
Hättet ihr eine Idee für mich?
Fenster erkennen und wegklicken
Du suchst etwas in der Art: https://pyautogui.readthedocs.io/en/latest/
Hallo
Ich hatte das Thema lange beiseite gelegt, da ich nicht weiter kam und wollte es jetzt erneut angehen.
Ich kann mittlerweile aktive *.exe Files im Taskmanager finden.
Das hilft mir aber immer noch nicht das "SpeichernUnter" Dialogfenster vom Notepad zu finden. Hat jemand eine Idee oder kann ein Minibeispiel einstellen, wie man solche Fenster findet und diese abbricht oder schließt.
Ich hatte das Thema lange beiseite gelegt, da ich nicht weiter kam und wollte es jetzt erneut angehen.
Ich kann mittlerweile aktive *.exe Files im Taskmanager finden.
Code: Alles auswählen
import psutil
for p in psutil.process_iter(attrs=['pid', 'name']):
if "notepad++.exe" in (p.info['name']).lower():
print("Habe ich gefunden", (p.info['name']).lower())
Ok, ich habe mich jetzt eine Weile mit pywinauto befasst und wollte für alle die auf das gleiche Problem stoßen hier mal eine Lösung zeigen.
Als Versuchsobjekt habe ich das Notepad geöffnet und den Dialog "Speichern unter" offen.
Wenn ich den folgenden Code in der Console ausführe erhalte ich die Unterpunkte vom Notepad.
Mit dem Befehl finde ich auch den Abbrechen Button im Rückgabewert
Da man diese Informationen nun hat kann man mit dem Befehl
ganz einfach das Fenster abbrechen. Diese Erkenntniss hat mich nur 2 Tage gekostet
Als Versuchsobjekt habe ich das Notepad geöffnet und den Dialog "Speichern unter" offen.
Wenn ich den folgenden Code in der Console ausführe erhalte ich die Unterpunkte vom Notepad.
Code: Alles auswählen
from pywinauto.application import Application
app = Application().connect(path=r"C:\Windows\System32\notepad.exe")
# Anzeige der Unterpunkte vom Notepad
dialogs = app.windows()
print(dialogs)
# Anzeige der Bedienelemente von Speichern unter
SaveAsWindow = app[u'Speichern unter']
SaveAsWindow.print_control_identifiers()
Code: Alles auswählen
print_control_identifiers()
Code: Alles auswählen
...
| child_window(title="&Speichern", class_name="Button")
|
| Button - 'Abbrechen' (L2964, T741, R3052, B767)
| ['AbbrechenButton', 'Abbrechen', 'Button3']
| child_window(title="Abbrechen", class_name="Button")
|
| ScrollBar - '' (L3052, T762, R3069, B779)
| ['AbbrechenScrollBar', 'ScrollBar3']
| child_window(class_name="ScrollBar")
|
| Static - '' (L2242, T227, R2758, B244)
| ['Speichern unterStatic', 'Static3', 'Speichern unterStatic0', 'Speichern unterStatic1']
| child_window(class_name="Static")
...
Code: Alles auswählen
app[u'Speichern unter'][u'Abbrechen'].click()
- __blackjack__
- User
- Beiträge: 13077
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Ollom: Du verwendet da aber nicht mehr Python 2 oder? Die u vor den Zeichenketten sollten da nicht stehen, insbesondere sollte Python die nie *ausgeben*, denn dann ist es Python 2.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman