【问题标题】:Program to move mouse cursor doesn't work as expected移动鼠标光标的程序无法按预期工作
【发布时间】:2019-05-17 20:40:29
【问题描述】:

我正在创建一个程序,它利用win32api mouse_event 将鼠标光标移动到某个位置。但是,该程序没有按预期工作。 任何帮助将不胜感激。

注意:我必须使用win32api 而不能使用其他库。

以这个程序为例:

import win32api

x = 1000
y = 1000
win32api.mouse_event(0x0001, int(x), int(y))

它应该将鼠标光标移动到屏幕上的第 1000 个 x 和 y 像素,但它没有。

【问题讨论】:

  • 改用SendInput怎么样?
  • 阅读文档:mouse_event
  • SendInput 会使用不同的库吗?
  • @mic:这不会改变任何事情。完成同样的事情只是更多的设置,没有任何好处。参数和语义几乎相同。
  • 我已经阅读了文档,我只是好奇为什么它不起作用。

标签: python winapi mouseevent


【解决方案1】:

如果要使用SendInput,则需要使用ctypes库,如果使用旧的mouse_event,则可以使用以下示例。

import win32api 
import win32con
def click(x,y):
    cx_screen = win32api.GetSystemMetrics(win32con.SM_CXSCREEN)
    cy_screen = win32api.GetSystemMetrics(win32con.SM_CYSCREEN) 
    win32api.mouse_event(win32con.MOUSEEVENTF_MOVE | win32con.MOUSEEVENTF_ABSOLUTE, int(65535.0*x/cx_screen), int(65535.0*y/cy_screen))
click(1000,100)

How to Use SendInput to realize Mouse Click?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    相关资源
    最近更新 更多