1

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?

Clay Nichols
  • 11,848
  • 30
  • 109
  • 170

3 Answers3

1

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

FifthAxiom
  • 172
  • 1
  • 7
1

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

Techboy
  • 4,286
  • 5
  • 36
  • 45
  • I don't think that'll work. There's an error in that code. They refer to a key \Preload1 but it's \preload\1 . And you can have multiple preloads (English-usa, english-australian). I changed the language from usa to aussie and it didn't change 1, it just created another key ("1") set to aussie. – Clay Nichols Apr 23 '09 at 00:28
1

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.

Clay Nichols
  • 11,848
  • 30
  • 109
  • 170