2017-02-23 102 views
0

我見過有關啓動Windows EXE文件的蟒蛇的問題,但我需要一些不同的東西......我想在運行Ubuntu的機器上做這件事。python腳本來操作Windows程序

我有一個windows EXE打開一個窗口,允許我選擇一個COM端口並輸入一個文件名,然後有幾個按鈕,我可以查詢該COM端口上的傳感器並將輸出寫入文件。我需要自動化這個數據收集過程,並且很想簡單地模仿EXE在運行Ubuntu 16.04 LTS的MinnowBoard上的python腳本的行爲,但是傳感器的創建者不會共享他們用來與他們的傳感器對話的協議。顯而易見的協議似乎不起作用,所以我留下了他們的編譯可執行文件。

有沒有一種方法,在Linux上的Python,運行Windows可執行文件,輸入文本到文件名字段,並點擊特定序列中的一些按鈕?基本上,我正在尋找一個模擬器內的廣義宏功能(如Wine?)。 EXE可以通過按鍵操作(鼠標不是必需的),如果這有所作爲。任何想法都會有幫助!

+0

順便說一句,谷歌搜索* python自動化窗口*第一擊:https://pywinauto.github.io/ – kazemakase

回答

0

在第一個結帳系統中,它將傳遞的字符串作爲命令行調用。這裏是一個編輯windows-notepad中的文件的例子。

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程序也有開關(用/或 - 在字母前標記)來改變行爲。查看 -?在一些Windows程序中獲取命令行中更具體的信息。

在linux上,你應該安裝一個虛擬機。用系統調用虛擬機,在那裏你通過exe文件,如上面傳遞給notepad.exe的文件名。

#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) 

有了一些研究,你會發現虛擬機,它可以模擬輸入,也可能是使用另一種編程語言。在windows-C庫中也有一些可以模擬鍵盤輸入的功能。