07-23-2023, 01:59 AM
Believe it or not, my installer is so old that it doesn't have an option to detect the 64-bit version of Windows.
Is there a Windows DLL call or (even better) an environment variable that would give that information for Windows XP and Windows Vista?
**One possible solution**
I see that Wikipedia states that the 64-bit version of Windows XP and Windows Vista have a unique environment variable: `%ProgramW6432%`, so I'm guessing that'd be empty on 32-bit Windows.
This variable points to `Program Files` directory, which stores all the installed program of Windows and others. The default on English-language systems is `C:\Program Files`. In 64-bit editions of Windows (XP, 2003, Vista), there are also `%ProgramFiles(x86)%` which defaults to `C:\Program Files (x86)` and `%ProgramW6432%` which defaults to `C:\Program Files`. The `%ProgramFiles%` itself depends on whether the process requesting the environment variable is itself 32-bit or 64-bit (this is caused by Windows-on-Windows 64-bit redirection).
Is there a Windows DLL call or (even better) an environment variable that would give that information for Windows XP and Windows Vista?
**One possible solution**
I see that Wikipedia states that the 64-bit version of Windows XP and Windows Vista have a unique environment variable: `%ProgramW6432%`, so I'm guessing that'd be empty on 32-bit Windows.
This variable points to `Program Files` directory, which stores all the installed program of Windows and others. The default on English-language systems is `C:\Program Files`. In 64-bit editions of Windows (XP, 2003, Vista), there are also `%ProgramFiles(x86)%` which defaults to `C:\Program Files (x86)` and `%ProgramW6432%` which defaults to `C:\Program Files`. The `%ProgramFiles%` itself depends on whether the process requesting the environment variable is itself 32-bit or 64-bit (this is caused by Windows-on-Windows 64-bit redirection).