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

// 注册部分我就省略了

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