How to find world region (or country) or language from the windows registry?

6.5k Views Asked by At

I'm working with a very old installer that can read Registry entries but has a difficulty (complex) time executing Windows APIs.

I'm trying to detect whether the PC it's being installed on is in Australia.

Any ideas?

3

There are 3 best solutions below

1
On

From my testing and the MSDN page below, this will work:

HKEY_CURRENT_USER\Control Panel\International\sCountry ="Australia"

This corresponds to setting in the Region Options ("Select an item to match it' preferences".

http://support.microsoft.com/kb/102978

This has the advantage of also being able to be read from a non-admin account.

1
On

This key:

HKEY_USERS.DEFAULT\Keyboard Layout\Preload

sets the default language for the login screen

The different country codes are listed here:

http://www.windowsitpro.com/Article/ArticleID/14867/14867.html

0
On

To supplement: "HKEY_CURRENT_USER\Control Panel\International\sCountry" is only used for the notation format. You could also use. "HKEY_CURRENT_USER\Control Panel\International\Locale" and link it to a table.

The notation cross-table:

https://msdn.microsoft.com/en-us/library/ee825488(v=cs.20).aspx https://www.science.co.il/language/Locale-codes.php

The current location is stored in "HKEY_CURRENT_USER\Control Panel\International\Geo\Nation"

The location cross-table:

https://msdn.microsoft.com/en-us/library/windows/desktop/dd374073%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396