ahkPostFunction

导出的函数允许调用 AutoHotkey 模块当前执行的脚本中的函数,而无需等待函数返回。
参数只能是字符串。


OutputVar := ahkPostFunction("FuncName" , Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9, Arg10)
函数示例: OutputVar := DllCall("AutoHotkey.dll\ahkPostFunction", "Str", "FuncName"[, "Str", Arg1 , ..., "Str",Arg10], "Str")
                  OutputVar := DllCall("AutoHotkey.exe\ahkPostFunction", "Str", "FuncName"[, "Str", Arg1 , ..., "Str",Arg10], "Str")

参数

OutputVar(输出变量)

如果找到函数,则存储 0 的变量名称;如果未找到函数,则存储 -1。

FuncName(函数名)

要调用的函数的名称。

Arg1, ..., Arg10(参数 1 到参数 10)

您最多可以向该函数传递 10 个参数。注意如果要省略参数(使用函数默认参数),所有参数都需要是字符串或 NULL / 0

返回值

如果找到并调用函数,则返回 1(真),否则返回 0(假)。

备注

请注意,如果出现以下情况,函数将不会运行 #MaxThreads 已达到限制。

相关

ahkFunction, ahkFindFunc

示例

dllpath:=A_AhkDir "\AutoHotkey.dll"
DllCall("LoadLibrary","Str",dllpath) ; 加载 AutoHotkey 模块。
DllCall(dllpath "\ahktextdll","Str","#Persistent`nMyFunc(param){`nSleep 1000`nMsgBox `% param`n}","Str","","CDecl") ; 启动新线程,仅包含该函数。
DllCall(dllpath "\ahkPostFunction","Str","MyFunc","Str","Hello World!","Str","","Str","","Str","","Str","","Str","","Str","","Str","","Str","","Str","","CDecl") ; 调用该函数。
Sleep 5000 ; 等待 5 秒并退出
 
 ; 使用内置 AutoHotkey.dll 的同等示例
 dll:=AhkThread("#Persistent`nMyFunc(param){`nSleep 1000`nMsgBox `% param`n}")
 dll.ahkPostFunction["MyFunc","Hello World!"]
 Sleep 5000