I know this but if register not pass parameter function then parameter have to be default True or not declared and not global value.
Any other language this do. Autoit3 is border line?
Iām seeing unexpected behavior when using AdlibRegister with a function that has a default parameter.
Example:
Local $a = "Alx"
AdlibRegister("KeyboardShow", 1000)
Sleep(5000)
Func KeyboardShow($a = True)
ConsoleWrite("[$a] = " & $a & @CRLF)
EndFunc
When KeyboardShow is triggered by AdlibRegister, it prints "Alx" ā even though no parameter is passed, and the default is True.
Why is it picking up the global $a instead of using the default?
In most other languages, the function parameter would shadow the global variable, and the default would apply when no argument is passed.
But in AutoIt, it seems like the global variable is used instead ā is this expected behavior, or a quirk to avoid?
No my question is about ram dump of internal autoit3 feature and not code obfuscate.
I will stop when I no longer have to defend them from unjustified attacks.
I not ask for "General help and support" but for "AutoIt Technical Discussion": Right Forum.
I not see why not resurected very old topic, REALLY RELATED.
[Learn from the past instead of remove it.]
3 is equal to 1 repeated.
I not have violated forum rules, and also Jos rules.
If you believe it is right proceed with the point 4 against a twenty years old user who is unpleasant to you.
I prefer to be abused.
Do InputBox use internally SecureZeroMemory to Secure strings when have password?
If I use:
RunAsWait("user", @ComputerName, InputBox(@ComputerName, "user", "", "*"), 1, "app.exe", @ScriptDir)
password is exposed to memory dump attack?
I don't speak about Dllopen but only to Dllclose
then use f.e.:
Dim $dll = DllOpen("kernel32.dll")
DllCall($dll, 'uint64', 'GetTickCount64')
without explicitly closing it.