Текущий архив: 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