【學習資料】 - PYTHON3關於win32con.WM_MOUSEMOVE模擬鼠標移動問題


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)    #   定義終點

 

這樣就完成了鼠標拖動的動作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM