Wie zu verwenden win32gui FindWindow mit Wildcard
Ich versuche zu finden, wenn Microsoft excel hat ein offenes Fenster
import win32ui
import time
def WindowExists(windowname):
try:
win32ui.FindWindow(None, windowname)
except win32ui.error:
return False
else:
return True
if WindowExists("filename - Microsoft Excel"):
print "Program is running"
time.sleep(10)
else:
print "Program is not running"
time.sleep(10)
dies funktioniert, wenn ich geben Sie den richtigen Dateinamen, aber die Sache ist die, ich weiß nicht, das mit dem Namen.
also, wie bekomme ich diese zu arbeiten, als nur zu wissen, Teil des Titels?
oder muss ich die Suche auf den Klassennamen statt? wenn ja, wie kann ich wissen, classname :)?
extra Hinweis:
ich weiß, das mit dem Namen, aber es hat eine unknow Zahl angefügt, so etwas wie filename88, und unterscheidet sich jedes mal, wenn ich das Programm starte.
als Randbemerkung, in Python-Methoden, sollten Sie nicht verwenden CamelCase aber underscore_separation, d.h. es könnte eine gute Idee sein, einen Namen für Ihre Funktion
window_exists
. win32ui
weicht von diesem, weil es macht die Windows-API, die leider nicht verwenden CamelCase...InformationsquelleAutor 77120 | 2014-01-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese Funktion gibt den vollständigen Dateinamen enthält, die kürzere Zeichenfolge, die Sie benötigen - aber es wird nur funktionieren, wenn die Datei, die Sie suchen ist die einzige Datei, die mit diesem Teilstring in diesem Verzeichnis. Wenn Sie etwas robuster sind, sollten Sie ändern Sie den regulären Ausdruck.
Ja - es müsste ausgeführt werden, aus dem gleichen Verzeichnis wie die excel-Datei, die Sie versuchen zu finden, oder Sie können Sie mit os.chdir(directory_required) wechseln Sie zu diesem Verzeichnis. Sie können dann mit dem WindowExists(mit dem Namen), um zu bestimmen, wenn es geöffnet ist.
Herausgegeben zu klären, wo ich denke, dass mein code passt.
oke, dass könnte funktionieren, nur noch ein problem, das die excel-Dateien generiert und nicht gespeichert in einem Verzeichnis, ich werde sehen, ob ich finden kann, es in ein temp-dir irgendwo. Dank
InformationsquelleAutor rabs
Die Antwort gefunden, ich war eigentlich auf der Suche nach Hier
Die Antwort von rabs war auch hilfreich für mich, danke!
InformationsquelleAutor 77120