下面是使用pywin32库中的SendMessage函数来实现鼠标拖动模拟的示例代码:\n\npython\nimport win32api\nimport win32con\nimport win32gui\n\ndef drag_mouse(start_x, start_y, end_x, end_y):\n # 获取桌面窗口句柄\n desktop_handle = win32gui.GetDesktopWindow()\n\n # 将鼠标转换为屏幕坐标\n start_pos = win32api.MAKEPOINTS(win32api.GetMessagePos())\n start_pos = win32api.ScreenToClient(desktop_handle, start_pos)\n\n # 模拟鼠标按下\n win32api.SendMessage(desktop_handle, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, win32api.MAKELONG(start_pos.x, start_pos.y))\n\n # 将终点坐标转换为屏幕坐标\n end_pos = win32api.MAKEPOINTS(win32api.GetMessagePos())\n end_pos = win32api.ScreenToClient(desktop_handle, end_pos)\n\n # 模拟鼠标移动\n win32api.SendMessage(desktop_handle, win32con.WM_MOUSEMOVE, win32con.MK_LBUTTON, win32api.MAKELONG(end_pos.x, end_pos.y))\n\n # 模拟鼠标释放\n win32api.SendMessage(desktop_handle, win32con.WM_LBUTTONUP, 0, win32api.MAKELONG(end_pos.x, end_pos.y))\n\n# 示例用法\ndrag_mouse(100, 100, 200, 200)\n\n\n在示例代码中,drag_mouse函数接受起始点和终点的x、y坐标作为输入参数。首先,通过win32api.GetMessagePos()获取当前鼠标位置,然后使用win32api.ScreenToClient()将鼠标坐标转换为屏幕坐标。接着,使用win32api.MAKELONG()函数将起始点和终点的屏幕坐标组合成一个LPARAM值,作为SendMessage函数的参数。最后,通过发送WM_LBUTTONDOWNWM_MOUSEMOVEWM_LBUTTONUP消息来模拟鼠标的按下、移动和释放操作。

Python Pywin32 鼠标拖动模拟:使用 SendMessage 实现

原文地址: https://www.cveoy.top/t/topic/qD8Z 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录