Call 註冊大漠
Dimenv 環境變量句柄
//環境變量,線程裏面要用到.要定義為環境變量
ID句柄字符串 = ""
//****************************** 檢測按鍵,動作 ***************************************
do
Call Plugin.Msg.Tips("按Insert鍵綁定,按Delete鍵解綁")
Key = WaitKey()
// 等待用戶按任何鍵
// 下面是Insert鍵,綁定鼠標指向的窗口的線程
If Key = 45 Then
環境變量句柄 = dm.GetMousePointWindow()
// 鼠標指向的窗口
// 先判斷,這個句柄是否在綁定.如果綁定過.不再重復綁定這個窗口
位置 = Instr(ID句柄字符串, 環境變量句柄)
//Instr函數,作用是:返回"環境變量句柄"在 "ID句柄字符串"中 第壹次出現的位置。沒出現就是位置=0
// 如果位置=0 就綁定,預防重復綁定
TracePrint 位置
TracePrint ID句柄字符串
If 位置 = 0 Then
//
線程ID=BeginThread(多線程)
// 多線程
// 按壹次Home鍵,就綁定壹個窗口多開
句柄 = CStr(環境變量句柄)
ID = CStr(線程ID)
// CStr函數是把整數轉換成字符串類型
ID句柄字符串 = 句柄 + "|" + ID + "|" + ID句柄字符串
//
Call Plugin.Msg.Tips("已綁定,壹個窗口")
//
Else
Call Plugin.Msg.Tips("窗口已經綁定過了,請不要重復綁定")
Delay 2500
End If
//
//
//########################################################
// 下面是按Delete鍵,停止鼠標指向的窗口的線程
ElseIf Key = 46 Then
鼠標指向的句柄 = dm.GetMousePointWindow()
// TracePrint ID句柄字符串
位置 = Instr(ID句柄字符串, 鼠標指向的句柄)
//Instr函數,作用是:返回"環境變量句柄"在 "ID句柄字符串"中 第壹次出現的位置。沒出現就是位置=0
// 如果位置=0 證明這個窗口當前沒有綁定,預防沒綁定就解綁
TracePrint 位置
TracePrint ID句柄字符串
If 位置 > 0 Then
數組 = Split(ID句柄字符串, 鼠標指向的句柄)
ID = 數組(1)
數組2 = Split(ID, "|")
ID2 = 數組2(1)
// TracePrint ID2
StopThread ID2
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// 下面是把停止的線程的ID和句柄,從ID句柄字符串去掉
TracePrint ID句柄字符串
刪除數組 = Split(ID句柄字符串, 鼠標指向的句柄)
左邊 = 刪除數組(0)
ID3= ID2+"|"
刪除數組2 = Split(ID句柄字符串, ID3)
右邊 = 刪除數組2(1)
ID句柄字符串 = 左邊 + 右邊
TracePrint ID句柄字符串
//
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Call Plugin.Msg.Tips("已解綁,壹個窗口")
Else
Call Plugin.Msg.Tips("窗口都沒綁定過,妳解綁什麽嗯,想下標越界麽")
Delay 2500
End If
End If
Delay 1500
// 適當延遲,避免連按鍵
Call Plugin.Msg.Tips("")
Loop
//
//
//****************************** 多線程程序 ***************************************
Sub 多線程
set dm = createobject("dm.dmsoft")
//↑創建“壹個對象”
// dm_ret = dm.SetDict(0,"c:\test_game\dm_soft.txt")
//字庫
Call 綁定()
//下面是妳要編寫的程序
Do
dm. KeyPress 81
// 輸入文字Q
//
Delay 1000
Loop
End Sub
//
//
//
//****************************** 註冊大漠 ***************************************
sub 註冊大漠
need_ver = "3.1225B"
PutAttachment "c:\test_game","*.*"
PutAttachment ".\Plugin" ,"RegDll.dll"
Call Plugin.RegDll.Reg("c:\test_game\dm.dll")
set dm = createobject("dm.dmsoft")
ver = dm.Ver()
if ver <> need_ver then
set dm = nothing
set ws=createobject("Wscript.Shell")
ws.run "regsvr32 c:\test_game\dm.dll /s"
set ws=nothing
Delay 1200
set dm = createobject("dm.dmsoft")
ver = dm.Ver()
if ver <> need_ver then
messagebox "插件版本錯誤,當前使用的版本是:"&ver&",插件所在目錄是:"&dm.GetBasePath()
messagebox "請關閉程序,重新打開本程序再嘗試"
endscript
end if
end if
//上面是註冊大漠
// dm_ret = dm.SetDict(0, "c:\test_game\dm_soft.txt")
//字庫
End Sub
Sub 綁定()
hwnd = 環境變量句柄
dm_ret = dm.BindWindow( hwnd, "gdi2", "windows", "windows",0)
//綁定窗口
//
If dm_ret=0 Then
//判斷上面是否獲取到句柄
MessageBox "錯誤;請把鼠標移到遊戲窗口內,再啟動腳本"
End If
// dm.DownCpu 50
dm_ret = dm.SetPath("c:\test_game\")
//設置全局路徑,設置了此路徑後,所有接口調用中,相關的文件都相對於此路徑. 比如圖片,字庫等.< /SPAN >
//設定附件的路徑,以後找圖命令裏面就沒必要添加路徑了
End Sub
Sub OnScriptExit()
dm.UnBindWindow
End Sub