AutoHotkeyA32 vs. AutoHotkeyU32 vs. AutoHotkeyU64
The portable .zip
archive for AutoHotkey contains 3 executables: AutoHotkeyA32.exe
, AutoHotkeyU32.exe
, and AutoHotkeyU64.exe
.
Based on the filenames, I'm assuming 32
and 64
refer to 32-bit and 64-bit respectively, while A
and U
refer to Admin and User permissions. However, if that is the case, it seems odd that AutoHotkeyA32.exe
doesn't prompt for Admin rights when run, and that an AutoHotkeyA64.exe
wouldn't also be included...
What's the difference between the three AutoHotkey executables and which one should I be using?
Update: The .exe properties reveal the A
and U
stand for ANSI and Unicode respectively. Still unsure what that means for regular program functionality.
TL:DR: Unless you are running legacy scripts, you should probably use AutoHotkeyU32.exe
The "A" and "U" designations are for ANSI or Unicode support. Citation
If you are parsing files or manipulating data and need character support beyond the standard ASCII characters set, or need to send characters to a program in another language, then you need to use the unicode version.
If you know for certain that you will never see anything outside of the ANSI/ASCII alphabet then you want to use the "A" version.
The "A" version is probably also better on older operating systems where Unicode support is, to put it politely, less complete. While XP (I believe) did unicode, support has been greatly improved over time.
By default I've always used the unicode version on modern programs on modern systems without issue, if you see strange behaviours then you might need to call back to the ANSI version.
From What to Autohotkey to choose?
AutoHotkey_L is offered in an ANSI and an Unicode version. This describes a different script encoding (learn more…). You may not know a lot about it, but Unicode often makes dealing with advanced topics (Windows API), but also hotkeys with special characters (ä, ö, ü, ß, Ø, Њ, ڵ, …) easier. On the other side, some old scripts from the forum might have minor issues.
So if you have old scripts then they might need fixing, in which case the ANSI version might fare better, but the Unicode version will give you access to the Unicode versions of Windows API commands and makes dealing with special characters much easier.
Also, from HowtoGeek: The Beginner’s Guide to Using an AutoHotkey Script the Autohotkey Installer
We recommend to keep this at the default, Unicode 32-bit. If you’re running a 64-bit version of Windows you could opt for the 64-bit Unicode version, but it doesn’t offer significant performance gains for most scripts. Regarding ANSI, you should only choose this option if there’s a specific script you’d like to run which you know for sure doesn’t play well with Unicode. This very rarely happens.