ahkdll

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


OutputVar := DllCall("AutoHotkey.dll\ahkdll", "Str", "FileName", "Str", "Parameters", "Str", "Title", "CDecl UPTR")
函数示例: hThread := DllCall("AutoHotkey.dll\ahkdll", "Str", "FileName.ahk" ,"Str",, "Str",, "PTR")

参数

OutputVar(输出变量)

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

FileName.ahk(文件名,可选)

保存在磁盘或网络上的新 AutoHotkey 脚本将在 AutoHotkey.dll 中执行。当为空时,使用以下脚本:

#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 "\ahkdll","Str",A_ScriptDir "\MyDllScript.ahk","Str","","CDecl") ; 从文件启动一个新线程。
While DllCall(dllpath "\ahkReady")
  Sleep 100 ; 等待线程退出

; 使用内置 AutoHotkey.dll 的同等示例
dll:=AhkThread(A_ScriptDir "\MyDllScript.ahk","",true)
While dll.ahkReady()
  Sleep 100 ; 等待线程退出