Como descobrir se é Windows XP

Delphi

27/10/2004

Alguém sabe um método simples para descobrir se a minha aplicação está rodando no Windows XP ?

É pq tenho aplicação que roda em win98,2000 e XP, só q qdo uso panel no form o programa roda legal no win98 e 2000, mas no XP não, pq a barra de título do XP é mais larga e no final das contas o panel não cabe totalmente dentro do form e por isso ele cria barras de scroll.

Se tivesse um jeito de saber se está rodando no XP ficaria fácil, aí no onshow do form eu testava, se fosse XP aumentaria o height do form e já era.


Marco

Marco

Curtidas 0

Respostas

Nildo

Nildo

27/10/2004

Olá!
Você pode usar a função:

function IsWinXP: Boolean;
begin
  Result := (Win32Platform = VER_PLATFORM_WIN32_NT) and
    (Win32MajorVersion = 5) and (Win32MinorVersion = 1);
end; 



GOSTEI 0
Rômulo Barros

Rômulo Barros

27/10/2004

:arrow: [color=red:01cfe72959][u:01cfe72959][b:01cfe72959]Geralmente, verifico isso pelo registro do Windows. [/b:01cfe72959][/u:01cfe72959][/color:01cfe72959]

Uses
   Registry;
...
Var
  Registro : TRegistry;
Begin
   Registro := TRegistry.Create; 
   Registro.RootKey := HKEY_LOCAL_MACHINE;
   Registro.OpenKey(´SOFTWARE\Microsoft\Windows\CurrentVersion´,False);{"False" pq todas as versões do Win possuem essa chave} 
   If Not Registro.ValueExists(´Version´)Then 
      ShowMessage(´NT/2000/XP´)
   Else 
      ShowMessage(´Win9X/ME´); 
   Registro.CloseKey();
   FreeAndNil(Registro);
End;



[color=green:01cfe72959][u:01cfe72959]Espero tê-lo ajudado !!![/u:01cfe72959][/color:01cfe72959]


GOSTEI 0
Marco

Marco

27/10/2004

Nildo, a funçao funcionou, pelo menos com o Windows 2000.

Logo mais vou testar no Windows XP pra ver se funcionou completamente.


Valeu!!!


GOSTEI 0
POSTAR