Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата El Sanchez:
предполагаю, что установка доп. ПО у вас реализована через секцию Run »
У меня установка реализована через секцию [code]. В принципе поэтому и гео хотелось бы реализовать там же. Пробовал сделать как вы предложили через секцию Run, но эффект не был достигнут. Поэтому попробовал порыться в сети и нашел один скрипт по идентификации пользователя через time zone. Дополнительно подключив Table of Geographical Locations в результате получил то от чего, в принципе, уже можно оттолкнуться. Во всяком случае уже хоть что-то. По этому коду если у пользователя настройки системы по US и RU установка идет, в противном случае нет. Думаю идеально будет, если связать запрос с IP пользователя (хотя бы через http://ipinfo.io/country). Возможно это?

Код: Выделить весь код
Code]
const
  GEOCLASS_NATION = 16;
  GEOID_UNITED_STATES = $F4;
  GEOID_RUSSIA = $CB;
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 IsGeoLocationRU: Boolean;
begin
  Result := GetUserGeoID(GEOCLASS_NATION) = GEOID_RUSSIA;
end;

function InitializeSetup: Boolean;
begin
  if IsGeoLocationUSA then
    Result := True
  else
    Result := False;

  if IsGeoLocationRU then
    Result := True
  else
    Result := False;
end;

Отправлено: 21:30, 30-06-2017 | #1989