ahktextdll

导出的函数可从磁盘或网络上的文件在当前进程中创建附加 AutoHotkey 线程。
如果线程已经执行,它将在新线程启动之前终止。
请注意,您需要先使用 LoadLibrary 加载 AutoHotkey.dll 模块,然后才能使用此功能,请参阅示例。
此函数仅在 AutoHotkey.dll 中可用


OutputVar := DllCall("AutoHotkey.dll\ahktextdll", "Str", "Script", "Str", "Parameters", "Str", "Title", "CDecl UPTR")
函数示例: hThread := DllCall("AutoHotkey.dll\ahktextdll", "Str", "MsgBox From Thread" ,"Str",, "Str",, "PTR")

参数

OutputVar(输出变量)

用于存储新创建线程的句柄的变量的名称。

Script(脚本,可选)

包含要在 AutoHotkey.dll 中执行的新 AutoHotkey 脚本的字符串。省略时,使用以下脚本:

#Persistent
#NoTrayIcon

Parameters(参数,可选)

命令行参数,可通过内置变量 A_Args 对象访问。

Title(标题,可选)

当未给出标题时,将在 MsgBox、Gui... 中显示的 dll 线程的标题(默认文件名)。

一般备注

当传递空字符串或 0 而不是 MyScript.ahk 时,ahkdll 的行为有所不同:


当使用命令行参数启动 exe 时,dll 将能够获取参数并使用相同的库以及 A_ScriptDir 和 A_ScriptFullPath 作为可执行文件。编译可执行文件时,将使用可执行文件的路径。

相关

ahktextdll, AutoHotkey.dll, AhkThread

示例

dllpath:=A_AhkDir "\AutoHotkey.dll"
DllCall("LoadLibrary","Str",dllpath) ; 加载 AutoHotkey 模块。
DllCall(dllpath "\ahktextdll","Str","MsgBox Hello World!","Str","","Str","","CDecl") ; 从文件启动一个新线程。
While DllCall(dllpath "\ahkReady")
  Sleep 100 ; 等待线程退出

; 使用内置 AutoHotkey.dll 的同等示例
dll:=AhkThread("MsgBox Hello World!")
While dll.ahkReady()
  Sleep 100 ; 等待线程退出