我正在开发一个项目,我希望使用python自动化GUI,但我尝试自动化的Windows程序不响应pyautogui鼠标点击。制作此应用程序的公司是否可能故意阻止了Windows API事件?
我试图自动化的特定程序是Blackbaud的Raiser's Edge。
我在问,因为我正在计划使用树莓派来修改鼠标以控制鼠标点击,然后在我的计算机上通过SSH连接它,如果此问题没有其他解决办法。
答案 0 :(得分:2)
Windows 10让这变得更加困难。如果您尝试自动化的应用程序以管理员身份运行,则无法使用以普通用户身份运行的程序来控制它。
尝试以管理员身份运行您的python程序。
但是,是的,程序可以区分真实鼠标事件和模拟事件。如果它是一个高度敏感的程序,他们可能会。或者,如果是视频游戏,他们可能只是直接轮询硬件并忽略Windows消息。
编辑:此外,许多应用程序需要的不仅仅是"点击"信息。他们想要mouseenter / mousemove / mousedown / mouseup。如果您没有发送所有这些消息,则不会激活为"点击"。 pyautogui.click应该正确模拟它,但如果你试验应用程序并查看它如何响应(点击鼠标而不释放,会发生什么?)你可能能够改进模拟。也许在pyautogui.mouseDown()和pyautogui.mouseUp()之间放一个延迟。
但我的预感是应用程序以与python脚本不同的用户身份运行。