本章主題《外掛入門》YCT65B
01、熱鍵與窗口 | 02、鼠標鍵盤 | 03、仿QQ尾巴 | 04、座標與顏色 | 05、其他常用功能 | 06、兩個外掛 | 07、模塊註冊 | ... ... |
01、熱鍵與窗口
熱鍵與表單控制項的控制碼,標題,類名...
先來講解熱鍵,細心的用戶在使用QQ時,當開了兩個QQ,第二個在熱鍵時會出現一個提示框,說是熱鍵註冊失敗,原因是熱鍵衝突。
熱鍵是什麼呢?比如QQ上收到了有資訊時,按下 Ctrl + Alt + Z 時會彈出新的聊天對話方塊。
這堛 Ctrl + Alt + Z 一按,不管你當時是在做什麼,都會彈出那個QQ聊天框的組合按鍵,就叫做熱鍵。
由此可見,熱鍵就是屬於那種,不管你在任何的軟體上做什麼事務,只要一按下曾經註冊過的那組按鍵,
系統就會去調用被註冊熱鍵時指定的副程式代碼來執行。
下面我們來設計一個簡單的熱鍵程式,源代碼參考本節第一例。
窗口佈局如下
然後編寫代碼如下
熱鍵的編寫如上面的代碼,然後可以調試或編譯成EXE文運行,試試按下 Ctrl + Alt + Q 會有什麼反應,
還有按 home 這個鍵又有什麼反應,如果什麼反應都沒有話,看看代碼上有沒有錯誤,
或 到外掛網站上,下載最新的模組來用。
上面的代碼對於熱鍵進行了初步的講解,不是很明白的話不要緊,用多了後自然會明白的。
再來講解窗口控制碼。
在上面的熱鍵堙A我們用到了一個 _啟動視窗.取視窗控制碼(),,,後面的,視窗控制碼是什麼是很重要的,
在外掛的編程生涯中,離不開這個視窗控制碼,事實上,除了這個視窗控制碼外,還有一大堆的各種各樣的控制碼。
視窗控制碼是一個數值型資料,這個數值佔用4位元組記憶體,等於一個整數型的變數所用的記憶體4位元組長度,
所以可以用整數型變數來存放 視窗控制碼,
視窗控制碼的作用是用來標識某個視窗表單或控制項用的,可以通過這個控制碼對那個視窗進行各種的操作與調整。
外掛就是要用來控置與操作遊戲,所以離不開這個視窗控制碼。
視窗控制碼在有效時間是在某個視窗或控制項初始創建時被系統分配的,直到這個控制項或視窗被銷毀後,視窗控制碼才會失效。
每個控制項在創建時被分配的視窗控制碼都是隨機的,
也就是說,一個軟體,這次運行時他的主視窗句配,與下次運行時的是不同的。
一個視窗控制碼只能標識一個控制項,不會出現兩個相同的控制碼來標識兩個不同的控制項。
上面對於視窗控制碼這個概念進行了初步的講解,可能有些模糊,下面我們就來實際應用一下,實踐才是真理。
再來設計一個程式,介面如下,源代碼參考本節第二例。
在視窗佈局上,放上一些常用的控制項
從上例我們瞭解到,視窗控制碼是隨機的,每次都會分配得不同,同時,不管是視窗本身還是視窗上的控制項,都有他們的控制碼。
上例所顯示出的控制碼,是用易語言堛 取視窗控制碼() 得到的,這回我們再去試試,從別的軟體上得到它的視窗控制碼。
上面有提到,可以通過視窗控制碼,控制和操作遊戲軟體或其他別人的軟體,前提還是先取到那個軟體的視窗或控制項現在控制碼。
有了正確的控制碼,才能進行操作。
其實,一個視窗或控制項,它除了有控制碼外,還有其他的一些屬性,
如,視窗的標題,類名,內容,位置與大小等等資訊。
windows作業系統雖然可以同時運行很多個軟體,但是,每次只能有一個軟體來接受用戶的輸入,
也就是指,只能有一個軟體處於可接受用戶操作的啟動狀態。
下面,我們來設計第三個例子,獲取當前正處於啟動狀態的視窗的視窗控制碼,並且,得到這個視窗的標題與類名資訊。
第三例介面如下,源代碼參考本節第三例。
從第三例中,我們明白了,一個視窗或者控制項,他們的類名是基本不變的,
即使重啟這個軟體也不會變,但對於標題,很多的軟體是可以在運行階段中使用代碼去改
變的或被其他的軟體修改掉的,而視窗控制碼,是每次在被創建時由系統分配的,無法改變,只有重啟軟體才會變。
其實呢,通過用控制碼可以得到該視窗或控制項的標題,類名或內容,
同時的,也可以根據一個視窗的標題,類名或內容找出這個視窗控制項的控制碼。
但有一點需要 清楚的是,如果有兩個視窗,他們的標題類名相同的話,那你,
一次只能獲取一個視窗的控制碼,下次才能再獲取到另一個視窗的控制碼,需要另外加以分析,判斷出哪個控制碼是哪個視窗的才行。
第四例介面如下,源代碼參考本節第四例。
對於單開的遊戲,可以使用 取表單控制碼(類名,標題)
來獲取其視窗的控制碼,
對於多開的視窗如還要獲取其視窗內部的控制項控制碼,
則必需得借助 查找視窗(父控制碼,起始控制碼,類名,標題)
這個功能了,使用查找視窗這個功能時,需要注意其第二個參數起始控制碼的值。
另外,從上面的例子,還瞭解到了,原來在使用函數時,
函數中的有些參數被 [] 括弧括起來的被稱為可空參數,可空參數也就是可以省略的參數。
如 取表單控制碼([類名],[標題]) 該函數共有兩個參數,同時兩個參數都是可空可省略的。
例.想要兩個參數都省略可以編寫如下代碼
取表單控制碼() 或
取表單控制碼( , )
例.想要省略第二參數,提供第一參數時
取表單控制碼(視窗類名) 或
取表單控制碼(視窗類名, )
例.想要省略第一個參數只使用第二參數時,注意這堥洏峇F
號把第一參數與第二參數進行分隔
取表單控制碼( 視窗的標題)
例.兩個參數都使用時,與平時的其他函數用法一致
取表單控制碼(視窗類名,視窗標題)
這是外掛第三章堛熔臚@節教材,共分為四例,
分別講解了熱鍵的用法與以窗口標題類名獲取批配的視窗的視窗控制碼,
或用,某個視窗控制碼來獲取該視窗的標題與類名。
本節的內容是比較基礎級的,卻又必需得掌握,因為外掛方面的技術時時刻刻的與控制碼打交道.
第三章為動作式外掛設計,學會後,就能設計出按鍵精靈,腳本大師這類的動作模擬外掛功能
自本章起,以後的章節內容都是以作業系統上的一些的知識與原理的講解,
對於編程技巧方面會減少,換句話來說,做外掛,與編程的技術關係得並不大,一般只要會初級的編程技術就夠了,
當然,對編程越精通是越好的,呵呵……
[ 本帖最後由 cyelvis 於 2009-3-26 09:39 編輯 ] |