使用以下两种技术在Windows中移动鼠标有什么区别吗?
win32api.SetCursorPos((x,y))
VS
nx = x*65535/win32api.GetSystemMetrics(0)
ny = y*65535/win32api.GetSystemMetrics(1)
win32api.mouse_event(win32con.MOUSEEVENTF_ABSOLUTE|win32con.MOUSEEVENTF_MOVE,nx,ny)
Windows处理动作的方式有什么不同吗?
答案 0 :(得分:4)
我相信mouse_event
的作用是将事件插入到鼠标输入流中,而SetCursorPos
只是将光标移动到屏幕上。我不相信SetCursorPos也会生成任何输入事件(虽然我可能错了)。
实际意义是当你使用SetCursorPos
时,它只是移动光标。当您使用mouse_event
时,它会在输入流中插入事件,这些事件又会为正在侦听的任何程序生成输入事件。这对于监听较低级别鼠标事件而不仅仅是光标点击的程序有影响;比如游戏。此外,如果您使用mouse_event
移动光标并启用光标/指针加速,则生成的鼠标移动应受窗口正在使用的加速度曲线的影响。