标签:鼠标 WM subhandle MOUSEMOVE SendMessage win32gui win32con
PYTHON3关于win32con.WM_MOUSEMOVE模拟鼠标移动问题
网上针对pywin32模块的教程较少,本人也是一路摸黑慢慢试~
先放代码:
winname = u'雷电模拟器'
subclassname = 'RenderWindow'
handle = win32gui.FindWindow(0, winname)
if handle == 0:
pass
else:
win32gui.ShowWindow(handle, 1)
win32gui.SetForegroundWindow(handle)
subhandle = win32gui.FindWindowEx(handle, None, subclassname, None)
print(subhandle) # 子句柄
print('%x' %subhandle) # 十六进制子句柄
point = win32api.MAKELONG(400, 200) # 定义起始点
point1 = win32api.MAKELONG(100,200) # 定义终点 win32gui.SendMessage(subhandle,win32con.WM_LBUTTONDOWN,win32con.MK_LBUTTON, point) # 起始点按住
win32gui.SendMessage(subhandle,win32con.WM_MOUSEMOVE, win32con.MK_LBUTTON,point1) # 移动到终点
win32gui.SendMessage(subhandle, win32con.WM_LBUTTONUP, 0, 0) # 松开 time.sleep(1)
准备写一个简单的挂机脚本,发现需要用到鼠标拖动的动作,就研究了下:
相对于鼠标直接点击,拖动鼠标多了几个动作,首先要按住鼠标左键,然后不松左键的情况下移动,再松开左键
win32gui.SendMessage(subhandle,win32con.WM_LBUTTONDOWN,win32con.MK_LBUTTON, point) # 起始点按住
win32gui.SendMessage(subhandle,win32con.WM_MOUSEMOVE, win32con.MK_LBUTTON,point1) # 移动到终点
win32gui.SendMessage(subhandle, win32con.WM_LBUTTONUP, 0, 0) # 松开
光有动作没有点是不行的,win32gui.SendMessage对于坐标点用专门的函数获取:
point = win32api.MAKELONG(400, 200) # 定义起始点
point1 = win32api.MAKELONG(100,200) # 定义终点
这样就完成了鼠标拖动的动作。
标签:鼠标,WM,subhandle,MOUSEMOVE,SendMessage,win32gui,win32con 来源: https://www.cnblogs.com/yingzidy/p/12356976.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。