本帖最后由 happytc 于 2012-5-6 23:27 编辑
ahk用dll的方式实现了简单的多线程,至少可以线程之间共享变量了。它是由志愿者开发出来的,看来这就是开源的优势了,志愿者拿到源码,就可以修改和增加重大功能了,而我们的au3,非开发者,拿不到源码,想开发都不可能了。
我知道P版曾在这方面努力过,不知道有没有进展呀
不过,就我认知而言,没有au3的源码,做起来很难很难的。
希望那个大侠能实现au3的多线程,现在的软件界面,很少不是UI多线程的了
比较ahk的线程间共用变量的例子:;创建一个AhkDllThread类的实例,每创建一个实例,就是一个线程
ahkDll01 :=AhkDllThread("AutoHotkey.dll")
ahkDll02 :=AhkDllThread("AutoHotkey.dll")
;接下来用ahkDll01举例,启动这个空脚本
ahkDll01 .ahktextdll() ;启动 #Persistent + #NoTrayIcon 模式的空线程
;用addFile或者addScript等函数,往这个空脚本添加要执行的内容。。。
ahkDll01.addFile("MyScript.ahk") ;添加但暂时不执行,待会用别的命令去执行
; 用ahkassign 方法,访问到线程中的变量,把主进程的变量值,传给线程里的变量
ahkDll01.ahkassign.a:="test"
; 用ahkgetvar 方法,得到线程中的变量变量值
MyString := ahkDll01.ahkgetvar.a
|