我使用pyautogui
编写了一个脚本,它应该启动一个程序(一个IDE),然后开始使用它。
到目前为止这是脚本:
#! python3
# mouseNow.py - Displays the mouse cursor's current position.
import pyautogui, sys, subprocess
from time import sleep
x,y = 1100,550
subprocess.call([r'C:\...exe', arg1, arg2])
pyautogui.click(x,y)
sleep(5) # 2 sec should suffice but this is for safety
pyautogui.typewrite(my_string)
pyautogui.press('enter')
这很好但我想要便携。 {I-{}}值取决于程序提示在我启动程序后出现在屏幕上的位置,但我认为这不是可移植的。有没有办法将鼠标指向提示而不提供const参数?像x,y
另外,我使用move_mouse_to_window_of_this_process_after_starting_it()
所以我会在出现后将数据写入窗口,但我想这不是一个好方法(有些PC会运行这个我想是慢得多,所以有没有办法知道提示何时出现,然后进行sleep()
?
编辑:我找到了pyautogui.typewrite(my_string)
的简单解决方案
:
move_mouse_to_window_of_this_process_after_starting_it()
答案 0 :(得分:1)
您与.exe交互的方式排除了坐标或盲目触发的替代方法(Tab,Tab,Enter等..)。
如果应用程序有API,您可以以编程方式与其进行交互。 如果它没有,你只能尝试匹配x屏幕分辨率的位置,这只有在全屏/窗口全屏使用GUI时才会这样。
答案 1 :(得分:1)
如果您需要可移植且可靠的解决方案,则必须找到支持辅助功能技术的库,以便按文本访问GUI元素。基本技术是:
有几个开源GUI自动化库支持其中一些技术(通常为1或2)。 Python解决方案:
关于硬睡眠与灵活等待也有a thread on StackOverflow。
享受! :)