2017-02-23 1 views
0

Ich habe Fragen über Python beim Starten einer Windows EXE-Datei gesehen, aber ich brauche etwas anderes ... Ich würde es gerne auf einer Maschine mit Ubuntu tun.Python-Skript, um Windows-Programm zu betreiben

Ich habe eine Windows-EXE, die ein Fenster öffnet, erlaubt mir, einen COM-Port zu wählen und einen Dateinamen einzugeben, und hat dann ein paar Tasten, mit denen ich einen Sensor an diesem COM-Port abfragen und die Ausgabe auf a schreiben kann Datei. Ich muss diesen Datenerfassungsprozess automatisieren und würde gerne das Verhalten der EXE mit einem Python-Skript auf meinem MinnowBoard mit Ubuntu 16.04 LTS simulieren, aber der Ersteller des Sensors teilt nicht das Protokoll, mit dem sie mit ihrem Sensor sprechen. Die offensichtlichen Protokolle scheinen nicht zu funktionieren, so dass ich ihre kompilierte ausführbare Datei übrig habe.

Gibt es eine Möglichkeit, in Python unter Linux, die ausführbare Windows-Datei auszuführen, Text in das Feld Dateiname einzugeben und auf einige Schaltflächen in einer bestimmten Reihenfolge zu klicken? Im Wesentlichen suche ich nach einer verallgemeinerten Makrofunktion INSIDE einen Emulator (wie Wine?). Die EXE kann per Tastendruck bedient werden (eine Maus ist nicht notwendig), wenn das einen Unterschied macht. Irgendwelche Gedanken wären hilfreich!

+0

Btw, googeln für * Python automatisieren Windows * ersten Treffer: https://pywinauto.github.io/ – kazemakase

Antwort

0

Beim ersten Kassensystem ruft es die übergebene Zeichenfolge als Befehlszeile auf. Hier ein Beispiel zum Bearbeiten einer Datei im Windows-Editor.

from os import system 
print("input path and filename to open a file") 
print("input nothing to create a new file") 
file = input(">>> ") 
system("notepad.exe {}".format(file)) 

Windows-Programme haben auch Schalter (markiert mit/oder - vor einem Buchstaben), um das Verhalten zu ändern. Auschecken -? auf einigen Windows-Programmen, um spezifischere Informationen in der Kommandozeile zu erhalten.

Unter Linux sollten Sie eine virtuelle Maschine installieren. Rufen Sie die vm mit dem System auf, wo Sie die exe wie den oben übergebenen Dateinamen an notepad.exe übergeben haben.

#windowsCommandLine is the windows programfile and its parameters -> so it is the string you will pass directly to system on windows. 
system("{} {}".format(virtualBoxPath, windowsCommandLine) 

Mit einigen Recherchen Sie vms finden konnten, die Eingänge simulieren könnte, kann es mit einer anderen Programmiersprache sein. In der Windows-C-Bibliothek gibt es auch einige Funktionen, die Tastatureingaben emulieren könnten.

Verwandte Themen