我不会依赖时区设置,而是依赖于地理位置.有关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;
Run Code Online (Sandbox Code Playgroud)
忘记注意,此功能支持的最低客户端操作系统是Windows XP.对于那些不知道这个设置来自何处的人来说,这里是来自Windows 7的区域和语言控制面板小程序的图片.在上面的函数中检查的地理位置可以在那里配置:

| 归档时间: |
|
| 查看次数: |
548 次 |
| 最近记录: |