Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
999 connectés 

  FORUM HardWare.fr
  Programmation

  [C++] Comment savoir sous quel OS on tourne ??

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] Comment savoir sous quel OS on tourne ??

n°72547
godbout
Génial.
Posté le 15-11-2001 à 17:25:36  profilanswer
 

hein ?

mood
Publicité
Posté le 15-11-2001 à 17:25:36  profilanswer
 

n°72551
chrisbk
-
Posté le 15-11-2001 à 17:37:21  profilanswer
 

a la compilation ?
 
des gros
 
#ifdef WIN32  
 
devrait faire l'affaire (ou _WIN32 je sais pu trop)
y'a aussi des WINVER et tout ca, regarde dans windows.h c la que ca doit trainer

n°72553
SoWhatIn22
Posté le 15-11-2001 à 17:37:37  profilanswer
 

tu veux pouvoir faire la différence entre les différentes versions de windows? ou encore plus (...???)

n°72556
godbout
Génial.
Posté le 15-11-2001 à 17:45:13  profilanswer
 

ouaip c'est entre les versions, 98, 2K, etc...
Parce que les cle dans la base de registre ne sont pas les memes des fois et ca me pose un pb

n°72558
SoWhatIn22
Posté le 15-11-2001 à 17:48:20  profilanswer
 

#define W31  "Windows 3.1"
#define W95  "Windows 95"
#define W98  "Windows 98"
#define WME  "Windows ME"
#define WNT4      "Windows NT 4.0"
#define W2K  "Windows 2000"
 
 
#if defined(WIN32)
 OSVERSIONINFO winfo;
 winfo.dwOSVersionInfoSize=sizeof(OSVERSIONINFO);

 


 GetVersionEx(&winfo);
 if(winfo.dwPlatformId==VER_PLATFORM_WIN32_NT)
 {
  if(winfo.dwMajorVersion>=5)
   return W2K;
  else
   return WNT4;
 }
 else
 if(winfo.dwPlatformId==VER_PLATFORM_WIN32_WINDOWS
)
 {
  if(winfo.dwMinorVersion<10)
   return W95;
  else
  if(winfo.dwMinorVersion<90)
   return W98;
  else
   return WME;
 }
 else
 if(winfo.dwPlatformId==VER_PLATFORM_WIN32s)
 {
  return W31;
 }
 
 return "?";
#endif

n°72564
godbout
Génial.
Posté le 15-11-2001 à 18:05:26  profilanswer
 

Meci pour le code ;)
 
 
En fait mon pb c'est que je veux creer des shortcuts dans le menu demarrer, mais la cle n'est pas dans le meme path sous 2k et 98 (Bravo M$!!), le seul moyen que je trouve c'est de verifier l'OS, mais bon c'est un peu plus degueu...

n°72566
godbout
Génial.
Posté le 15-11-2001 à 18:07:43  profilanswer
 

if(winfo.dwMinorVersion<10)
  return W95;
 else
 if(winfo.dwMinorVersion<90)
  return W98;
 else
  return WME;
 
PS: Dans le code la y a pas un pb ?

n°72568
SoWhatIn22
Posté le 15-11-2001 à 18:13:56  profilanswer
 

Godbout a écrit a écrit :

if(winfo.dwMinorVersion<10)
  return W95;
 else
 if(winfo.dwMinorVersion<90)
  return W98;
 else
  return WME;
 
PS: Dans le code la y a pas un pb ?  




 
ah ouais, tiens... en fait, j'ai jamais essayé sous autre chose que NT ou 2000, alors je ne m'en suis même pas rendu compte :D

n°72579
godbout
Génial.
Posté le 15-11-2001 à 19:05:06  profilanswer
 

:D
 
Et comment je peux connaitre alors les differents intervalles que je dois tester ?
 
Au fait c'est une macro ca ?
Comment je recupere la valeur renvoyee par return ? (dsl dans une macro je capte pas)

n°72582
godbout
Génial.
Posté le 15-11-2001 à 19:22:27  profilanswer
 

C'est bon y a l'air d'avoir des infos dans GetVerion, j'avais pas vu ;)
 
Par contre la macro je capte toujours pas :D

mood
Publicité
Posté le 15-11-2001 à 19:22:27  profilanswer
 

n°72585
TheJackal
Posté le 15-11-2001 à 19:30:33  profilanswer
 

Code :
  1. BOOL bIsWindowsVersionOK(   DWORD dwWin9xMajor, DWORD dwWin9xMinor,
  2.                             DWORD dwWinNTMajor, DWORD dwWinNTMinor, WORD wWinNTSPMajor )
  3. {
  4.     OSVERSIONINFO           osvi; 
  5.     // Initialize the OSVERSIONINFO structure.
  6.     ZeroMemory( &osvi, sizeof( osvi ) );
  7.     osvi.dwOSVersionInfoSize = sizeof( osvi );   
  8.     GetVersionEx( &osvi );  // Assume this function succeeds.
  9.     // Split code paths for NT and Win9x     
  10.     if( osvi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS )
  11.     {
  12.         // Check the major version.
  13.         if( osvi.dwMajorVersion > dwWin9xMajor )
  14.             return TRUE;
  15.         else if( osvi.dwMajorVersion == dwWin9xMajor )
  16.         {
  17.             // Check the minor version.
  18.             if( osvi.dwMinorVersion >= dwWin9xMinor )
  19.                 return TRUE;
  20.         }
  21.     }
  22.     else if( osvi.dwPlatformId == VER_PLATFORM_WIN32_NT )
  23.     {
  24.         // Check the major version.
  25.         if( osvi.dwMajorVersion > dwWinNTMajor )
  26.             return TRUE;
  27.         else if( osvi.dwMajorVersion == dwWinNTMajor )
  28.         {
  29.             // Check the minor version.
  30.             if( osvi.dwMinorVersion > dwWinNTMinor )
  31.                 return TRUE;
  32.             else if( osvi.dwMinorVersion == dwWinNTMinor )
  33.             {
  34.                 // Check the service pack.
  35.                 DWORD dwServicePack = 0;
  36.                 if( osvi.szCSDVersion )
  37.                 {
  38.                     _stscanf(   osvi.szCSDVersion,
  39.                                 _T("Service Pack %d" ),
  40.                                 &dwServicePack );
  41.                 }
  42.                 return ( dwServicePack >= wWinNTSPMajor );
  43.             }
  44.         }
  45.     }
  46.     return FALSE;
  47. }


 
source: MSDN News


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C++] Comment savoir sous quel OS on tourne ??

 

Sujets relatifs
[JS] "error on page" => comment savoir ou sont les erreurs?[PHP] Comment savoir si une fonction est déjà définie?
Comment savoir quel version de php est installée ?[ JavaScript ] Comment savoir la "version HTML" du navigateur ??
Comment savoir le tps que le programme a mis a s'executer en pascal?[JavaScript] Savoir si l'utilisateur est sous MAC 0S 9 ou supérieur
[JavaScript] Savoir si l'utilisateur est sous MAC 0S 9 ou supérieursous FORMS (argh !), comment savoir le nombre de lignes fetchées ?
[HTML/Javascript] Peut-on savoir si une fenetre Internet existe ?[VB ET ACCESS] Comment faire pour savoir si une table existe ?
Plus de sujets relatifs à : [C++] Comment savoir sous quel OS on tourne ??


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR