python實現類比滑鼠代碼

來源:互聯網
上載者:User
python實現類比滑鼠代碼作者: 笑嘻嘻  日期: 2010-11-13 15:34字型大小: 小 中 大沒有任何經驗,網上找的代碼自己在拼湊。python預設是沒有安裝pywin32的,需要下載。http://sourceforge.net/projects/pywin32/  說一下環境吧,某棋牌遊戲大廳的五子棋。想實現滑鼠類比點擊開始按鈕。最終是想類比實現下棋,也就是外掛啦。一步步來吧。誰讓技術不行呢,只能摸索了。 中間遇到的問題: 1、win32gui.FindWindow('HGE__WNDCLASS', "五子棋".encode("gbk")); 這裡的漢字需要轉一下編碼,windows預設使用的gbk,而我編寫代碼習慣使用utf8,網上很多教程都沒有說,運行到這裡就出錯了。 2、原本是想直接給表單發送一個滑鼠點擊訊息的,可以不管用。需要想把滑鼠移動到指定座標才行。原因猜測這些確定按鈕其實不是很什麼表單控制項,就是塊圖片。我用spy++也取不到任何控制代碼。僅僅能取道表單一個控制代碼,根本選擇不到確定按鈕。表單負責了響應滑鼠事件,然後判斷了當前滑鼠的位置,然後內部計算確定使用者是點擊那部分,並執行對應的事件。    #-*- coding:utf-8 -*-'''Created on 2010-10-13@author: niming'''import win32apiimport win32guiimport win32conimport timeclass Gobang:    #確定按鈕座標    confirmPos = (505,675);    #五子棋棋盤座標         #初始化,找到五子棋視窗的控制代碼    def __init__(self):        #找到五子棋程式並開啟對應進程         try:             self.gobangHandle = win32gui.FindWindow('HGE__WNDCLASS', "五子棋".encode("gbk"));            win32gui.SetForegroundWindow(self.gobangHandle)            time.sleep(0.5)        except:             win32api.MessageBox(0, "請先運行五子棋程式".encode("gbk"), "錯誤!".encode("gbk"), win32con.MB_ICONERROR)             exit(0)                #類比滑鼠點擊 先將滑鼠移動到按鈕位置,然後發送單擊訊息然後移動到原來的位置,速度很快使用者感覺不到滑鼠移動    def click(self, client_pos):        oldCursorPos = win32gui.GetCursorPos()        self.moveCursor(client_pos)        #拼接滑鼠位置座標        tmp = win32api.MAKELONG(client_pos[0], client_pos[1])        #發送單擊命令        win32gui.SendMessage(self.gobangHandle, win32con.WM_ACTIVATE, win32con.WA_ACTIVE, 0)        win32api.SendMessage(self.gobangHandle, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, tmp)        win32api.SendMessage(self.gobangHandle, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON, tmp)        time.sleep(0.1)        #移動滑鼠到原來的座標        win32api.SetCursorPos(oldCursorPos)            #移動滑鼠到指定位置,是相對於五子棋視窗的座標    def moveCursor(self, client_pos):        screen_pos = win32gui.ClientToScreen(self.gobangHandle, client_pos)        win32api.SetCursorPos(screen_pos)            gobang = Gobang()gobang.click(gobang.confirmPos)
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.