Ich erstelle eine Schleife, die Felder oft öffnen und schließen muss. Außerdem muss dies schnell erledigt werden. Ich habe pywinauto dafür verwendet, aber es scheint nicht konsistent genug zu funktionieren.Schließen einer Anwendung (schnell)
import pywinauto
from time import sleep
import ctypes
import os
os.startfile(file_path)
# a bunch of keyboard events, which opens a seccond window
ctypes.windll.user32.keybd_event(0x12, 0, 0, 0) #Alt
ctypes.windll.user32.keybd_event(0x73, 0, 0, 0) #F4
ctypes.windll.user32.keybd_event(0x73, 0, 0x0002, 0) #F4
ctypes.windll.user32.keybd_event(0x12, 0, 0x0002, 0) #Alt
sleep(0.2)
Jetzt ist mein zweites Fenster geschlossen, ich muss noch das erste Fenster schließen. Ich kann dies nicht mit Tastaturanschlägen tun, da das Fenster nicht ausgewählt ist. momentan benutze ich das um das Fenster zu schließen:
app = pywinauto.application.Application(backend="uia")
app.connect(path="myapplication.exe")
app.kill()
Diese Methode funktioniert oft. Wenn ich den Code jedoch häufig wiederhole, kann das Suchen und Verbinden des Fensters manchmal fehlschlagen. Ich bin auf der Suche nach einer zuverlässigen Methode, um die Datei zu schließen, und ich möchte auch, dass es schnell ist.
Welche pywinauto-Version verwenden Sie? Und können Sie die Rückverfolgung eines typischen Fehlers liefern? –
Auch warum nicht 'von pywinauto.keyboard importieren SendKeys; SendKeys ('^ {F4}') 'und' app.FirstWindowName.set_focus() ' –
Ich kann nicht überprüfen, welche Version ich habe. – Gyula