2

inno スクリプト言語を使用して、PC のタイムゾーン設定に基づいて、ユーザーが存在する国を検出する方法。

ユーザーが米国出身か米国外出身かを知る必要があるだけです。

4

1 に答える 1

5

タイム ゾーンの設定に依存するのではなく、地理的な場所に依存します。GetUserGeoID関数によって返される値のリストについては、次を参照してTable of Geographical Locationsください。

[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
OutputDir=userdocs:Inno Setup Examples Output

[Code]
const
  GEOCLASS_NATION = 16;
  GEOID_UNITED_STATES = $F4;
type
  GEOID = Longint;
  GEOCLASS = DWORD;

function GetUserGeoID(GeoClass: GEOCLASS): GEOID;
  external 'GetUserGeoID@kernel32.dll stdcall';

function IsGeoLocationUSA: Boolean;
begin
  Result := GetUserGeoID(GEOCLASS_NATION) = GEOID_UNITED_STATES;
end;

function InitializeSetup: Boolean;
begin
  if IsGeoLocationUSA then
    MsgBox('Geographical location U.S.A.', mbInformation, MB_OK)
  else
    MsgBox('Geographical location other than U.S.A.', mbInformation, MB_OK);
end;

この機能でサポートされる最小のクライアント OS は Windows XP であることに注意するのを忘れていました。この設定がどこから来たのかわからない人のために、Windows 7 の [地域と言語] コントロール パネル アプレットの写真を示します。上記の機能でチェックされた地理的な場所は、そこで構成できます。

ここに画像の説明を入力

于 2013-01-31T10:36:17.497 に答える