跳到主要内容

按键精灵多线程调用大漠

目前来讲,按键的多线程还不够成熟。 尽量少用。以下是在按键下使用多线程调用插件的一个示例.

// 注册部分我就省略了

Dim hwnd

Set dm = createobject("dm.dmsoft")
TracePrint dm.Ver()

// 主绑定(当然你也可以不要主绑定。直接在线程里绑定)
hwnd = dm.GetMousePointWindow()
dm_ret = dm.BindWindow(hwnd, "dx", "windows", "windows", 0)
TracePrint dm_ret

Id1 = BeginThread(测试线程)
Id2 = BeginThread(测试线程)

Do
Delay 2000
TracePrint "主线程"
Loop

// 这里必须用ExitScript 以免线程无法停止.
ExitScript

Sub 测试线程()
Set dm = createobject("dm.dmsoft")
// 副绑定
dm_ret = dm.BindWindow(hwnd, "dx", "windows", "windows", 0)
TracePrint dm_ret

Do
Delay 2000
TracePrint "子线程"
Loop
End Sub

Sub OnScriptExit()
TracePrint "OnScriptExit"
dm.UnBindWindow
End Sub

// 以下函数只在按键9及之后的版本有效. 这个可以保证线程里的绑定可以正常释放.
Sub OnThreadExit()
TracePrint " OnThreadExit "
dm.UnBindWindow
End Sub