Adobe InCopy CS3: Allowing user dependent (HKEY_CURRENT_USER) language interface

Adobe InCopy contains a registry value for setting the user interface language. More info at this site [http://www.indiscripts.com/post/2009/10/switching-indesigns-ui-language-in-windows]. The screenshots where created while using Adobe InCopy CS3 5.04.

This setting is a HKEYLOCALMACHINE setting, but this makes it very difficult to have multiple persons use InCopy in a different language on the same computer.

Interesting case to see if it is possible to change InCopy so that it will have user specific values in HKEYCURRENTUSER, where it belongs (in my opinion this implementation is a bug).

Searching for the text (unicode) "User Interface Locale Setting", gave me a hit on Public.dll. I'm opening this DLL in IDA Pro.

This shows the function where the RegQueryValueExW function loads the language setting key. The hKey is being loaded at GetAppKey.

The highlighted text shows 800000002h, this is the HKEYLOCALMACHINE constant. When changing this value to 80000001h, which is the HKEYCURRENTUSER settings will be saved to the current user profile.

Now you can change the binary (change the 02 to 01) and test it.

And now you can have a different language for each user.