【问题标题】:Simulate Python Mouse Click win 8.1模拟 Python 鼠标点击 win 8.1
【发布时间】:2015-03-29 19:09:43
【问题描述】:

从工作中我得到了一份工作来制作一个 python 脚本,该脚本将单击以测试 Windows 8.1 的“秘密应用程序”的产品。 问题是我可以让它移动光标但它不能点击,我在互联网上搜索了win32文档但没有运气。有谁遇到过这个问题? 这是点击代码

 def click(x,y):
        win32api.SetCursorPos((x, y)) 
        #Left click
        win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0)
        time.sleep(0.05)
        win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0)

【问题讨论】:

  • 睡眠毫无意义。我无法想象你为什么添加它。您应该通过一次调用 SendInput 来做到这一点。
  • 你能提供更多细节吗?是的,我认为鼠标事件太快了。
  • 您没有检查错误。您是否仔细阅读了文档?
  • 您正在传递相对坐标。你是这个意思吗?
  • 是的,我正在发送相关坐标,数组中有 20 个案例,我将鼠标移到所有案例上。移动工作完美,点击没有。文档非常有限,我对此一无所知。

标签: python python-2.7 winapi


【解决方案1】:

与我的 Windows 8.1 笔记本电脑上的 ctypes 完美配合

import ctypes
ctypes.windll.user32.SetCursorPos(500, 500)
ctypes.windll.user32.mouse_event(2, 0, 0, 0,0) #left down
ctypes.windll.user32.mouse_event(4, 0, 0, 0,0) #left up

【讨论】:

  • 如果您坚持伪造输入,请使用正确的 API:SendInput。自动化 UI 的适当程序:UI Automation.
【解决方案2】:

您可以从 PyPI 安装 PyAutoGUI GUI 自动化模块(运行 pip install pyautogui),然后调用 pyautogui.click() 以单击屏幕的某个 X 和 Y 坐标:

>>> import pyautogui
>>> pyautogui.click(50, 100)

PyAutoGUI 可在 Windows、Mac 和 Linux 以及 Python 2 和 3 上运行。它还可以模拟键盘、鼠标拖动、截屏以及对截屏进行简单的图像识别。完整文档位于https://pyautogui.readthedocs.org/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-02
    • 1970-01-01
    • 1970-01-01
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多