Главная страница
    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.48 MB
Время: 0.03 c
2-1189486797
no_name
2007-09-11 08:59
2007.10.07
Как поместить созданный мной компонент в список ActiveX


15-1189358808
Kerk
2007-09-09 21:26
2007.10.07
Важный вопрос


15-1189361532
редкий гость
2007-09-09 22:12
2007.10.07
Java script


2-1189391632
арпывапр
2007-09-10 06:33
2007.10.07
отключение USB?


2-1189505083
юра
2007-09-11 14:04
2007.10.07
сжатие данных





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский