Hansang, you don't know much about Windows standards, aren't you?
The standard installation folder for applications is
%ProgramFiles% on Windows x86. The real directory name assigned to environment variable
ProgramFiles by Windows referenced with
%ProgramFiles% depends on operating system, language of operating system, and drive on which Windows is installed. The directory name is since Windows Vista language independent
Program Files although Windows Explorer of a German Windows 7 x86 displays
Programme as it was real name on German Windows XP x86. The drive is usually C: as most users have Windows installed on this drive.
I was very confused as I saw this "translation of directory name to language of OS" by Windows Explorer of Windows Vista and later Windows versions the first time on running an installer on Windows Vista which wanted to install the application into C:\Program Files instead of "C:\Programme". I browsed to "C:\Programme" and after selecting the directory, the installer displayed again "C:\Program Files". I browsed again to "C:\Programme" and get again "C:\Program Files" displayed after selecting the folder. Than I opened a command prompt window and executed dir C:\ and what could I see, no "Programme", just "Program Files". Lesson learned: Don't use Windows Explorer, use Total Commander (or command dir). It shows you real directory names.
The standard installation folder for 64-bit applications is
%ProgramFiles% on Windows x64. Everything else written above for this folder on Windows x86 is also true for Windows x64.
But on Windows x64 there is additionally the environment variable
ProgramFiles(x86) containing the directory name of the standard folder for x86 applications on Windows x64. The directory name is since Windows Vista x64 language independent
Program Files (x86) although German 64-bit Window Explorer displays
Programme (x86).
On Windows x86 there is no environment variable
ProgramFiles(x86) which makes it very easy to detect if an application or batch file is running on Windows x86 or Windows x64 independent on processor architecture.
32-bit UltraEdit installs itself by default to
%ProgramFiles% on Windows x86 and
%ProgramFiles(x86)% on Windows x64.
64-bit UltraEdit installs itself by default to
%ProgramFiles% on Windows x64.
So installer of UltraEdit is conform to Microsoft standard.
There is no
Program Files (x64) folder (except Windows 10 has by default such a folder which I don't know).
File associations registered under
HKEY_LOCAL_MACHINE\Software\Classes and being active for all user accounts on this machine can be made only when starting UltraEdit as administrator on Windows Vista or later as a standard user does not have write permissions on any key in
HKLM. UltraEdit should register the file association under
HKEY_CURRENT_USER\Software\Classes when being started without administrator privileges (standard user and UAC is enabled).
HKEY_CLASSES_ROOT defines what Windows finally use. User related settings in
HKEY_CURRENT_USER\Software\Classes are preferred over machine settings in
HKEY_LOCAL_MACHINE\Software\Classes. For more details on file association read the Microsoft article about
HKEY_CLASSES_ROOT Key.
And read also the Stack Overflow answers on
Where is "START" searching for executables? and
Batch script to check if directories exist.