Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

WinAPI GetVersionEx [D7, Win95/98, WinME, NT4, Win2k, WinXP]


SergeyGood ©   (2005-06-05 11:59:00) 

Не могу разобраться с GetVersionEx, мне нужно, чтобы при запуске программы на Label1 отображалось например Windows XP Professional, а на Label2 Номер билда Windows. Помогите люди добрые. Спасибо!


Хинт   (2005-06-05 12:24:00) [1]

function GetOS: String;
var
 PlatformId, VersionNumber: string;
 CSDVersion: String;
begin
 CSDVersion := '';

 case Win32Platform of
   VER_PLATFORM_WIN32_WINDOWS:
   begin
     if Win32MajorVersion = 4 then
       case Win32MinorVersion of
         0:  if (Length(Win32CSDVersion) > 0) and
                (Win32CSDVersion[1] in ['B', 'C']) then
               PlatformId := '95 OSR2'
             else
               PlatformId := '95';
         10: if (Length(Win32CSDVersion) > 0) and
                (Win32CSDVersion[1] = 'A') then
               PlatformId := '98 SE'
             else
               PlatformId := '98';
         90: PlatformId := 'ME';
       end
     else
       PlatformId := '9x version (unknown)';
   end;
   // Test for the Windows NT product family
   VER_PLATFORM_WIN32_NT:
   begin
     if Length(Win32CSDVersion) > 0 then CSDVersion := Win32CSDVersion;
     if Win32MajorVersion <= 4 then
       PlatformId := 'NT'
     else
       if Win32MajorVersion = 5 then
         case Win32MinorVersion of
           0: PlatformId := '2000';
           1: PlatformId := 'XP';
           2: PlatformId := 'Server 2003';
         else
           PlatformId := 'Future Windows version (unknown)';
         end
       else
         PlatformId := 'Future Windows version (unknown)';
   end;
 end;
 VersionNumber := Format(' Version %d.%d Build %d %s', [Win32MajorVersion,
                                                       Win32MinorVersion,
                                                       Win32BuildNumber,
                                                       CSDVersion]);
 Result := 'Windows ' + PlatformId + VersionNumber;
 MI.OS:=Result;
end;


Ученик   (2005-06-05 12:17:00) [2]

>SergeyGood ©   (05.06.05 11:59)  
Для NT, 2000, XP, 2003 можно отсюда
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion


Наверх

Титульная страница Поиск, карта сайта Написать письмо