导出的函数允许调用 AutoHotkey 模块当前执行的脚本中的函数。
参数只能是字符串,也可以是返回值。
OutputVar := ahkFunction("FuncName" , Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9, Arg10)
函数示例: OutputVar := DllCall("AutoHotkey.dll\ahkFunction", "Str", "FuncName"[, "Str", Arg1 , ..., "Str",Arg10], "Str")
OutputVar := DllCall("AutoHotkey.exe\ahkFunction", "Str", "FuncName"[, "Str", Arg1 , ..., "Str",Arg10], "Str")
用于将函数返回值存储为字符串的变量名称,失败时存储空字符串。
要调用的函数的名称。
您最多可以向该函数传递 10 个参数。注意如果要省略参数(使用函数默认参数),所有参数都需要是字符串或 NULL / 0
请注意,如果达到 #MaxThreads 限制,函数将不会运行。
dllpath:=A_AhkDir "\AutoHotkey.dll"
DllCall("LoadLibrary","Str",dllpath) ; 加载 AutoHotkey 模块。
DllCall(dllpath "\ahktextdll","Str","#Persistent`nMyFunc(param){`nSleep 10000`nMsgBox `% param`n""OK""`n}","Str","","CDecl") ; 启动新线程,仅包含该函数。
Msgbox % DllCall(dllpath "\ahkFunction","Str","MyFunc","Str","Hello World!","CDecl Str") ; 调用该函数。
; 与上面使用内部 AutoHotkey.dll 的示例相同
dll:=AhkThread("#Persistent`nMyFunc(param){`nSleep 10000`nMsgBox `% param`n""OK""`n}")
MsgBox % dll.ahkFunction["MyFunc","test"]