2010-09-08 35 views

回答

0

你應該訪問的註冊表項「H_KEY_CURRENT_USER /控制面板/國際/ sCountry」或者可能「 sLanguage」。

請注意,這會給你的文化慣例和用戶想要的語言,而不是實際的地理loacation。

另一種可能的選擇是'H_KEY_CURRENT_USER/Software/Microsoft/Windows NT/TimeZones/TimeZoneKeyName',它可能會給你一個關於真實位置的線索。

否則,您可以使用像'http://www.ip-adress.com/'這樣的網絡服務,它會告訴您ISP機器的位置,這可能與機器本身在不同的國家給出了一些公司網絡的折磨topoloigy。

通常最好的做法是讓用戶從下拉菜單中選擇「選擇國家」。

+0

沒有存儲在系統上的東西會給國家/地區 - 計算機不一定在它安裝的地方。跟蹤設備(使用GPS或類似設備)將是獲得可靠信息的唯一方法。 – mghie 2010-09-10 04:02:32

+0

我完全同意。獲取這些數據有兩個原因。一種是設置正確的語言等,在這種情況下,註冊表項是您想要的,另一種是用於許可或其他合同/法律原因,其中最好(但仍然不是100%)方法是通過註冊蝸牛發送許可證密鑰郵件。 – 2010-09-13 01:07:25

0

您不應該依賴註冊表值,它們可能會被更改或從更高版本的Windows中刪除,恕不另行通知。我建議直接使用Windows API GetLocaleInfo()

順便說一句,你爲什麼要這樣做?如果您只想讓安裝程序自動使用與用戶控制面板中的語言設置對應的語言,請在[Setup]部分中設置LanguageDetectionMethod=locale

相關問題