ahkExec

Exported function that executes some code temporarily from string in currently executed script.


OutputVar := ahkExec(Code)
Command  Example: ahkExec "MsgBox A_Now"
                  DllCall "AutoHotkey.dll\ahkExec", "Str", "MsgBox A_Now", "Char"
                  DllCall "AutoHotkey.exe\ahkExec", "Str", "MsgBox A_Now", "Char"

Function Example: Result := ahkExec("MsgBox A_Now")
                  Result := DllCall("AutoHotkey.dll\ahkExec", "Str", "MsgBox A_Now", "Char")
                  Result := DllCall("AutoHotkey.exe\ahkExec", "Str", "MsgBox A_Now", "Char")

Parameters

OutputVar

The name of the variable in which to store 1 (true) if code was created and executed successfully, 0 (false) otherwise.

NewCode

Code to execute temporarily in currently running script.

Return Value

If code was created and executed successfully 1 (true) is returned, otherwise 0 (false).

Related

ahkFindFunc, ahkFindLabel, ahkassign, NewThread

Examples

dllpath:=A_AhkDir "\AutoHotkey.dll"
DllCall("LoadLibrary","Str",dllpath) ; Load the AutoHotkey module.
ThreadID:=DllCall(dllpath "\NewThread","Str","","Str","","Str","","CDecl") ; start a new thread, just the function.
DllCall(dllpath "\ahkExec","Str","MsgBox 'Hello World!'","Uint",ThreadID,"CDecl") ; add and execute code

; Same example like above but using NewThread function
dll:=NewThread(,,,,dllpath)
dll.ahkExec("MsgBox 'Hello World!'")

; Execute code in current thread
ahkExec("MsgBox 'Test'")