我已经看到有关python启动Windows EXE文件的问题,但我需要一些不同的东西...我想在运行Ubuntu的机器上进行。
我有一个打开窗口的Windows EXE,允许我选择一个COM端口并输入一个文件名,然后有几个按钮,我可以用它来查询该COM端口上的传感器并将输出写入文件。我需要自动化这个数据收集过程,并且希望在运行Ubuntu 16.04 LTS的MinnowBoard上使用python脚本简单地模仿EXE的行为,但是传感器的创建者将不会共享他们用来与传感器通信的协议。显而易见的协议似乎不起作用,所以我留下了他们编译的可执行文件。
在linux上的python中,是否有办法运行Windows可执行文件,在文件名字段中输入文本,然后单击特定顺序中的某些按钮?从本质上讲,我正在寻找一个广义的宏功能INSIDE一个模拟器(如Wine?)。 EXE可以通过按键操作(鼠标不是必需的),如果这有所不同。任何想法都会有所帮助!
答案 0 :(得分: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上,你应该安装一台虚拟机。用系统调用vm,你将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)
通过一些研究,您可以找到可以模拟输入的vms,它可能正在使用另一种编程语言。在windows-C-library中也有一些可以模拟键盘输入的函数。