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