AutoIt has traditionally been a 32-bit application. With the 3.2.10.0 release native x64 versions of some components have been added, including:
During installation, if found to be running on x64 you will be given the choice to install and configure the x64 versions. These versions are fully x64 compatible, however, some scripts that use DllCall/DllStruct with custom structures may use values that break 64-bit compatibility (such as using 32-bit integers for pointers). This includes some of the UDFs supplied with AutoIt as they have not all been tested under x64.
You can run the x86 version of AutoIt by right-clicking a script and selecting "Run Script (x86)".
If you suspect that a script is not working correctly under x64 but it works under x86 then please report a bug.
To see if you are running under a 64-Bit Edition of Windows use @ProcessorArch macro. To see if you are using the 32 or 64-bit version of AutoIt use @AutoItX64.
For Files, Windows has a special redirection mechanism for some system directories :
Directories | 32-bit Value | 64-Bit Value |
@SystemDir | @windowsdir & "\SYSWOW64" | @windowsdir & "\System32" |
@ProgramFilesDir | @SystemDrive & "\Program Files(x86)" | @systemDrive & "\Program Files" |
It is possible to access the 64-bit version of those directories by disabling the redirection mechanism.
DllCall("kernel32.dll",
"int",
"Wow64DisableWow64FsRedirection",
"int",
1)
Some more information can be found at MSDN.
For registry, use HKCR64 or HKLM64 to bypass the redirection mechanism see Registry Functions documentation.