源由
剛開始是幫朋友做一個按鍵精靈操作旺信的腳本,寫完后各種不穩定;后來看到python可以操作win32相關的api,恰好這一段時間正在學習python,感覺練手的時候到了~~~
下載
要注意Python版本及位數,否則會安裝失敗
直接到上面的地址去找合適的版本下載安裝,已包含其它的工具
下載的已經是可執行文件,直接執行即可
https://sourceforge.net/projects/pywin32/
獲取句柄的方式
VC或VS工具里面自帶SPY++,可以獲取句柄信息, 這個你沒有,請看下條
沒錯,就是按鍵精靈(不是做廣告哈,第一次查找句柄信息的時候就是用這貨),功能簡單易用
使用
查詢句柄
# 根據類名及標題名查詢句柄,hwnd = win32gui.FindWindow("Tfrm_YzzPlayer","葉子豬手游模擬器")# 查找指定句柄的子句柄,后兩個參數為子類的類名與標題,如果沒有或不確定,可以寫Nonehwnd = win32gui.FindWindow(hwnd,None,"sub_class","sub_title")修改窗口大小
# 沒有直接修改窗口大小的方式,但可以曲線救國,幾個參數分別表示句柄,起始點坐標,寬高度,是否重繪界面 ,如果想改變窗口大小,就必須指定起始點的坐標,沒果對起始點坐標沒有要求,隨便寫就可以;如果還想要放在原先的位置,就需要先獲取之前的邊框位置,再調用該方法即可win32gui.MoveWindow(hwnd,20,20,405,756,True)
前臺后臺
# 指定句柄設置為前臺,也就是激活win32gui.SetForegroundWindow(hwnd)# 設置為后臺win32gui.SetBkMode(hwnd, win32con.TRANSPARENT)
按鍵
# 在這里兩幾種方式可以選擇 可以使用win32gui包和win32api的包,目前未深入了解,感覺是一樣的,每一個里面還有PostMessage與SendMessage兩都可選,依據其他文檔的說法是SendMessage是同步的,在成功執行后才會返回,而PostMessage是異步執行的,直接返回,只是把內容加在隊列里# 幾個參數分別為: 操作的句柄 , 按鍵的類型(是按下或者是彈起), 鍵碼(大部分的功能鍵在win32con包中都,對于常用的數字或字母,直接去查找ASII碼即可,如A 65 等等),相對于句柄中的位置(在這里需要使用win32api.MAKELONG(x,y)將兩個地址轉換為一個長地址;# 在這種情況下,可以做到后臺的操作# 需要注意的是每一個按鍵要有按下與彈起兩個過程,比果我們要按Enter鍵,就需要有兩句代碼,第二個參數分別為 KEYDOAWN與 KEYUP ,如果是組合鍵,就先把組合鍵分別按下后再分別彈起即可# win32gui.PostMessage(tid, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)# win32gui.SendMessage(tid, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)win32api.SendMessage(hwd, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, long_position)win32api.PostMessage(hwd, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, long_position)
新聞熱點
疑難解答