首先把dm變量定義成數組,線程句柄,線程ID都定義成數組。html
而後經過進程_取ID數組 (「gamefree.exe」, process_id, )獲取全部遊戲窗口的句柄ID加入數組process_id,而後經過取數組成員數,肯定開了幾個遊戲窗口,對相關數組從新定義下標。經過進程ID取建立句柄,分別獲取相應窗口句柄,進行後臺綁定。windows
易語言源碼:數組
.版本 2 .支持庫 spec .程序集 窗口程序集_啓動窗口 .程序集變量 dm, E大漠, , "0", 大漠插件 .程序集變量 thread_ID, 整數型, , "0", 線程ID .程序集變量 thread_hwnd, 整數型, , "0", 線程句柄 .程序集變量 許可證, 線程許可證 .子程序 __啓動窗口_建立完畢 重定義數組 (dm, 假, 1) dm [1].初始化註冊雲 (取運行目錄 () + 「\dm.dll」) 調試輸出 (dm [1].Ver ()) .子程序 _按鈕_thread_被單擊 .局部變量 process_id, 整數型, , "0" .局部變量 array_total, 整數型 .局部變量 i, 整數型 .局部變量 hwnd, 整數型 進程_取ID數組 (「gamefree.exe」, process_id, ) array_total = 取數組成員數 (process_id) 重定義數組 (dm, 假, array_total) 重定義數組 (thread_hwnd, 假, array_total) 重定義數組 (thread_ID, 假, array_total) .計次循環首 (array_total, i) dm [i].初始化 () hwnd = 進程_ID取窗口句柄 (process_id [i], , , ) dm [i].BindWindow (hwnd, 「dx」, 「dx2」, 「windows」, 0) 延遲 (500) thread_hwnd [i] = 線程_啓動 (&子程序_主線程, i, thread_ID [i]) 延遲 (500) .計次循環尾 () .子程序 子程序_主線程 .參數 thread, 整數型 許可證 = 線程_建立許可證 () 線程_進入許可區 (許可證) 線程_初始化COM庫 () 子_打怪 (thread) 子_簽到 (thread) dm [thread].UnBindWindow () dm [thread].銷燬 () 線程_取消COM庫 () 線程_退出許可區 (許可證) 線程_刪除許可證 (許可證) .子程序 子_打怪, , , 也就是打怪執行任務的子程序 .參數 thread .局部變量 i, 整數型 .計次循環首 (100, i) dm [thread].KeyPress (115) 延遲 (1000) .計次循環尾 () .子程序 子_簽到 .參數 thread
源碼參考:第四課易語言大漠多線程綁定和打怪(方法二)多線程