Запись в реестр на основе условия - PullRequest
1 голос
/ 24 января 2012

Я хочу написать в реестр на основе ОС. У меня есть функция обнаружения ОС, и я обнаружил, что вы можете установить функцию проверки в разделе реестра, поэтому попытался выполнить следующее:

Root: HKLM; SubKey: Software\Microsoft\Windows; ValueType: dword; ValueName: Test; ValueData: 1; Flags: createvalueifdoesntexist; Check: IsWindows7

Но это не сработало, значит, когда я установил на Win7 и WinXP, он записал значение в реестр в обоих случаях.

Вот код для определения ОС:

function IsWindows7(): Boolean;
var
  Version: TWindowsVersion;
begin
  GetWindowsVersionEx(Version);

  // Windows 7 version is 6.1 (workstation)
  if (Version.Major = 6)  and
     (Version.Minor = 1) and
     (Version.ProductType = VER_NT_WORKSTATION)
  then
    Result := True
  else
    Result := False;
end;

Есть идеи / предложения?

1 Ответ

3 голосов
/ 15 февраля 2012

Пожалуйста, смотрите ниже мое решение для вас:

[Registry]

Root: HKLM; SubKey: {code:IsWindows7}; ValueType: dword; ValueName: Test; ValueData: 1; Flags: createvalueifdoesntexist; Check: IsWindows7

[Code]

function IsWindows7(S: String) : string;
var
  Version: TWindowsVersion;
begin

 GetWindowsVersionEx(Version);

  // Windows 7 version is 6.1 (workstation)
  if (Version.Major = 6)  and
     (Version.Minor = 1) and
     (Version.ProductType = VER_NT_WORKSTATION)
  then
    Result := '<registry path for win 7>'
else
    Result := '<registry path for other win os >';

end;

Удачного кодирования!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...