Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.10.07;
Скачать: CL | DM;

Вниз

Как определить, что мы в Windows Vista?   Найти похожие ветки 

 
JetuS ©   (2007-09-07 09:19) [0]

Работаю с Delphi 2007.
Как определить версию Windows, а именно, что мы в Windows Vista?


 
Palladin ©   (2007-09-07 09:30) [1]

delphi-faq.zoxt.net


 
JetuS ©   (2007-09-07 09:39) [2]

2 Palladin: там про Vista ни слова.


 
Anatoly Podgoretsky ©   (2007-09-07 09:40) [3]

Разве Висту сложно спутать с другими системами, да и как ты работаешь, если не знаешь в какой ОС


 
JetuS ©   (2007-09-07 09:42) [4]

2 Anatoly Podgoretsky: у меня висты нету, но надо предусмотреть, чтобы прога в висте не запускалась, а выдавала сообщение о том, что эта версия программы не для висты.


 
Anatoly Podgoretsky ©   (2007-09-07 09:44) [5]

А при чем тут твоя работа с Д2007, вот как запустишь на Висте, так и увидишь, что это не ХР


 
clickmaker ©   (2007-09-07 09:45) [6]

var V: OSVERSIONINFOEX;

V.dwOSVersionInfoSize := sizeof(OSVERSIONINFOEX);
GetVersionInfoEx(V);
if (V.dwMajorVersion = 6) and (V.wProductType = VER_NT_WORKSTATION) then
 ShowMessage("We are in Vista");


 
JetuS ©   (2007-09-07 09:59) [7]

2 clickmaker: Спасибо, попробую.


 
Mirablics   (2007-09-07 10:07) [8]

Использовать функцию API GetVersionEx

function GetVersionEx(var lpVersionInformation: TOSVersionInfo): BOOL; stdcall;


Аргумент функции - структура TOSVersionInfo, содержит DwVersionInfoSize:DWORD - заполняется как sizeof(TOSVersionInfo) перед вызовом функции

DwMajorVersion:DWORD - старшая цифра версии Windows

Windows 95 - 4
Windows 98 - 4
Windows Me - 4
Windows NT 3.51 - 3
Windows NT 4.0 - 4
Windows 2000 - 5
Windows XP - 5
Windows Vista - 6

DwMinorVersion: DWORD - младшая цифра версии

Windows 95 - 0
Windows 98 - 10
Windows Me - 90
Windows NT 3.51 - 51
Windows NT 4.0 - 0
Windows 2000 - 0
Windows XP - 1
Windows Vista - 1
DwBuildNumber: DWORD

Win NT 4 - номер билда
Win 9x - старший байт - старшая и младшая цифры версии / младший - номер билда
dwPlatformId: DWORD

VER_PLATFORM_WIN32s Win32s on Windows 3.1.
VER_PLATFORM_WIN32_WINDOWS Win32 on Windows 9x
VER_PLATFORM_WIN32_NT Win32 on Windows NT, 2000
SzCSDVersion:DWORD

NT - содержит PСhar с инфо о установленном ServicePack
9x - доп. инфо, может и не быть


 
Palladin ©   (2007-09-07 10:07) [9]


> JetuS ©

там есть прекрасный пример определения версии Windows. Или тебе разжевать и в рот положить?


 
homm ©   (2007-09-07 14:24) [10]

> [7] JetuS ©   (07.09.07 09:59)
> 2 clickmaker: Спасибо, попробую.

Как ты попробуешь, у тебя же висты нет :)))


 
DVM ©   (2007-09-07 17:56) [11]

Есть еще вот такой способ, чтобы обойти режим совместимости.

function GetTrueWindowsVersion: TOsVersion;

 function ExportsAPI(module: HMODULE; const apiName: string): boolean;
   begin
     Result := GetProcAddress(module, PChar(apiName)) <> nil;
   end;
var
 hKernel32: HMODULE;

begin
 Result := OsUnknown;
 hKernel32 := GetModuleHandle("kernel32");
 if hKernel32 > 0 then
   begin
     if ExportsAPI(hKernel32, "GetLocaleInfoEx") then
       Result := OsWinVista
     else if ExportsAPI(hKernel32, "GetLargePageMinimum") then
       Result := OsWin2003
     else if ExportsAPI(hKernel32, "GetNativeSystemInfo") then
       Result := OsWinXP
     else if ExportsAPI(hKernel32, "ReplaceFile") then
       Result := OsWin2000
     else if ExportsAPI(hKernel32, "OpenThread") then
       Result := OsWinME
     else if ExportsAPI(hKernel32, "GetThreadPriorityBoost") then
       Result := OsWinNT4
     else if ExportsAPI(hKernel32, "IsDebuggerPresent") then
       Result := OsWin98
     else if ExportsAPI(hKernel32, "GetDiskFreeSpaceEx") then
       Result := OsWin95OSR2
     else if ExportsAPI(hKernel32, "ConnectNamedPipe") then
       Result := OsWinNT3
     else if ExportsAPI(hKernel32, "Beep") then
       Result := OsWin95
     else
       Result := OsUnknown;
   end;
end;



Страницы: 1 вся ветка

Текущий архив: 2007.10.07;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.026 c
1-1185183848
Tack
2007-07-23 13:44
2007.10.07
Проверить файл при открытии контекстного меню проводника


2-1189580698
artem779
2007-09-12 11:04
2007.10.07
область видимости


15-1189409712
alsov
2007-09-10 11:35
2007.10.07
Большой набор данных в гриде


15-1189390927
Slider007
2007-09-10 06:22
2007.10.07
С днем рождения ! 10 сентября 2007 понедельник


15-1188375008
stanislav
2007-08-29 12:10
2007.10.07
DllHost.exe!!! Может здесь кто поможет