15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Как определить, запущено ли приложение в Windows NT

Следующий кодкомпилируется как на 16-ти, так и на 32-битных платформах.

Пример:

{$IFNDEF WIN32}
  const WF_WINNT = $4000;
{$ENDIF}

function IsNT : bool;
{$IFDEF WIN32}
var
   osv : TOSVERSIONINFO;
{$ENDIF}
begin
  result := true;
{$IFDEF WIN32}
  GetVersionEx(osv);
  if osv.dwPlatformId = VER_PLATFORM_WIN32_NT then exit;
{$ELSE}
   if ((GetWinFlags and WF_WINNT) = WF_WINNT ) then exit;
{$ENDIF}
  result := false;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if IsNt then
    ShowMessage('Running on NT')
  else
    ShowMessage('Not Running on NT');
end;