按鍵精靈用大漠插件找圖方法
工具/原料
按鍵精靈軟件
大漠插件
方法/步驟
先將大漠插件下載下來,百度上搜索一下,或者按鍵精靈官方論壇裡搜索,一大堆
將dm.dll和RegDll.dll這兩個文件複製到按鍵精靈目錄下的plugin目錄裡。
運行按鍵精靈,新建一個腳本
在源文件裡輸入以下代碼,這一段是固定格式,只要根據實際文件目錄位置去更改就可以了
Plugin.RegDll.Reg "C:\path\dm.dll" '註冊大漠插件,參數為大漠插件所在的位置
set dm = createobject("dm.dmsoft")'創建大漠對象
dm_ret = dm.SetPath("C:\path")'設置目錄
Hwnd = Plugin.Window.MousePoint()'得到鼠標所在位置的窗口句柄
接著寫代碼,要後臺運行的話要先綁定窗口,用下面這一句,gdi是一般網頁遊戲通用,其它的大家自己測試
dm_ret = dm.BindWindow(hwnd, "gdi", "dx", "dx", 0)
函數原型
long BindWindow(hwnd,display,mouse,keypad,mode)
綁定模式會在後面附上
要找圖我們首先要截圖,先打開按鍵精靈附帶的工具,按鍵抓抓-選擇圖像,如下圖
然後將窗口放置於前臺,不要遮擋住要截圖的部分,按下鍵盤上print screen Sysrq。筆記本上是PrtSc SysRq,或者按按鍵抓抓上的截屏按鈕
這裡我以桌面為例子,如下圖
在要找圖的位置框選出一個選區,會彈出一個菜單,我們點位圖另存為,名字自己起
這裡以計算機為例
由於我們之前設置的目錄是 "C:\path"
所以現在我們要把文件保存在 "C:\path"這個目錄下
添加以下代碼,1366 768為屏幕分辨率, 1.bmp是剛剛保存的文件名,000000為偏色,這裡一般不用改,0.9是相似度,可以根據情況去更改,X Y為查找到的座標點
dm_ret = dm.FindPic(0, 0, 1366, 768, "1.bmp", "000000", 0.9, 0, X, Y)
If X > 0 Then
dm.moveTo X, Y
dm.LeftClick
End If
好了,現在我們來測試一下,點擊調試按F10啟動後,尋找到1.bmp這個圖片,鼠標移動過去並單擊了
如果需要找別的圖片,可以根據自己需要去截圖並保存
這裡是綁定模式
display: 屏幕顏色獲取方式 取值有以下幾種
"normal" : 正常模式,平常我們用的前臺截屏模式
"gdi" : gdi模式,用於窗口採用GDI方式刷新時. 此模式佔用CPU較大.
"gdi2" : gdi2模式,此模式兼容性較強,但是速度比gdi模式要慢許多,如果gdi模式發現後臺不刷新時,可以考慮用gdi2模式.
"dx2" : dx2模式,用於窗口採用dx模式刷新,如果dx方式會出現窗口所在進程崩潰的狀況,可以考慮採用這種.採用這種方式要保證窗口有一部分在屏幕外.win7或者vista不需要移動也可後臺.此模式佔用CPU較大.
"dx3" : dx3模式,同dx2模式,但是如果發現有些窗口後臺不刷新時,可以考慮用dx3模式,此模式比dx2模式慢許多. 此模式佔用CPU較大.
"dx" : dx模式,等同於BindWindowEx中,display設置的"dx.graphic.2d dx.graphic.3d",具體參考BindWindowEx
注意此模式需要管理員權限
mouse: 鼠標仿真模式 取值有以下幾種
"normal" : 正常模式,平常我們用的前臺鼠標模式
"windows": Windows模式,採取模擬windows消息方式 同按鍵自帶後臺插件.
"windows2": Windows2 模式,採取模擬windows消息方式(鎖定鼠標位置) 此模式等同於BindWindowEx中的mouse為以下組合
"dx.mouse.position.lock.api dx.mouse.position.lock.message dx.mouse.state.message"
注意此模式需要管理員權限
"windows3": Windows3模式,採取模擬windows消息方式,可以支持有多個子窗口的窗口後臺.
"dx": dx模式,採用模擬dx後臺鼠標模式,這種方式會鎖定鼠標輸入.有些窗口在此模式下綁定時,需要先激活窗口再綁定(或者綁定以後激活),否則可能會出現綁定後鼠標無效的情況.此模式等同於BindWindowEx中的mouse為以下組合
"dx.public.active.api dx.public.active.message dx.mouse.position.lock.api dx.mouse.position.lock.message dx.mouse.state.api dx.mouse.state.message dx.mouse.api dx.mouse.focus.input.api dx.mouse.focus.input.message dx.mouse.clip.lock.api dx.mouse.input.lock.api dx.mouse.cursor"
注意此模式需要管理員權限
"dx2":dx2模式,這種方式類似於dx模式,但是不會鎖定外部鼠標輸入.
有些窗口在此模式下綁定時,需要先激活窗口再綁定(或者綁定以後激活),否則可能會出現綁定後鼠標無效的情況. 此模式等同於BindWindowEx中的mouse為以下組合
"dx.public.active.api dx.public.active.message dx.mouse.position.lock.api dx.mouse.state.api dx.mouse.api dx.mouse.focus.input.api dx.mouse.focus.input.message dx.mouse.clip.lock.api dx.mouse.input.lock.api dx.mouse.cursor"
注意此模式需要管理員權限
keypad: 鍵盤仿真模式 取值有以下幾種
"normal" : 正常模式,平常我們用的前臺鍵盤模式
"windows": Windows模式,採取模擬windows消息方式 同按鍵的後臺插件.
"dx": dx模式,採用模擬dx後臺鍵盤模式。有些窗口在此模式下綁定時,需要先激活窗口再綁定(或者綁定以後激活),否則可能會出現綁定後鍵盤無效的情況. 此模式等同於BindWindowEx中的keypad為以下組合
"dx.public.active.api dx.public.active.message dx.keypad.state.api dx.keypad.api dx.keypad.input.lock.api"
注意此模式需要管理員權限
mode : 模式。 取值有以下兩種
0 : 推薦模式,此模式比較通用,而且後臺效果是最好的.
1 : 和模式0效果一樣,如果模式0會失敗時,可以嘗試此模式,此模式僅支持按鍵和簡單遊平臺,小精靈等一律不支持.
2 : 同模式0,此模式為老的模式0,儘量不要用此模式,除非有兼容性問題.
3 : 同模式1,此模式為老的模式1,儘量不要用此模式,除非有兼容性問題.
4 : 同模式0,如果模式0有崩潰問題,可以嘗試此模式.
5 : 同模式1, 如果模式0有崩潰問題,可以嘗試此模式.
注意事項
一定要確保插件已經註冊過,否則會無效,我們也可以手動註冊,方式為regsvr32 "插件位置" 例如regsvr32 "C:\path\dm.dll"