【发布时间】:2014-11-29 00:20:35
【问题描述】:
我有一个用于游戏的点击机器人,但有一段时间没有使用它。 我安装了它(也许有一个新版本),我的机器人不再工作了。游戏启动时似乎以某种方式阻止了该事件。
我用这个激活游戏:
shell=win32com.client.Dispatch("Wscript.Shell")
success = shell.AppActivate("Game)
我尝试了两种移动鼠标的方法:
win32api.SetCursorPos((x,y))
这给了我这个错误。
pywintypes.error: (0, 'SetCursorPos', 'No error message is available')
另一种方法是:
nx = int(x*65535/win32api.GetSystemMetrics(0))
ny = int(y*65535/win32api.GetSystemMetrics(1))
win32api.mouse_event(win32con.MOUSEEVENTF_ABSOLUTE|win32con.MOUSEEVENTF_MOVE,nx,ny)
这不起作用并且不会给我错误消息。
当游戏窗口未激活时,光标移动没有问题。
有人知道解决方法吗?
编辑:我使用的是 Microsoft Windows 8.1
【问题讨论】:
-
也许游戏使用了 DirectX? SetCursorPos 不行,你可以试试
SendInput。 -
所以,游戏可能已经切换到使用 DirectX 并进行了更新?当我在家时,我会进一步研究它。您知道提供此 SendInput 功能的 python 包吗?快速的谷歌搜索让使用 SendInput 看起来有点复杂。
-
你能举个例子吗,@Phillip
标签: python winapi python-3.x