应用程序没有响应Windows API事件?

时间:2017-06-09 21:20:24

标签: python pyautogui

我正在开发一个项目,我希望使用python自动化GUI,但我尝试自动化的Windows程序不响应pyautogui鼠标点击。制作此应用程序的公司是否可能故意阻止了Windows API事件?

我试图自动化的特定程序是Blackbaud的Raiser's Edge。

我在问,因为我正在计划使用树莓派来修改鼠标以控制鼠标点击,然后在我的计算机上通过SSH连接它,如果此问题没有其他解决办法。

1 个答案:

答案 0 :(得分:2)

Windows 10让这变得更加困难。如果您尝试自动化的应用程序以管理员身份运行,则无法使用以普通用户身份运行的程序来控制它。

尝试以管理员身份运行您的python程序。

但是,是的,程序可以区分真实鼠标事件和模拟事件。如果它是一个高度敏感的程序,他们可能会。或者,如果是视频游戏,他们可能只是直接轮询硬件并忽略Windows消息。

编辑:此外,许多应用程序需要的不仅仅是"点击"信息。他们想要mouseenter / mousemove / mousedown / mouseup。如果您没有发送所有这些消息,则不会激活为"点击"。 pyautogui.click应该正确模拟它,但如果你试验应用程序并查看它如何响应(点击鼠标而不释放,会发生什么?)你可能能够改进模拟。也许在pyautogui.mouseDown()和pyautogui.mouseUp()之间放一个延迟。

但我的预感是应用程序以与python脚本不同的用户身份运行。