Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.12.30;
Скачать: [xml.tar.bz2];

Вниз

Как программно определить OS?   Найти похожие ветки 

 
MoGiLsHiKK   (2003-12-17 15:21) [0]

Всем привет!
Кто-нибудь знает, как можно программно определить ,какая на компе установлена операционка?
Спасибо!!!


 
Внук   (2003-12-17 15:23) [1]

GetVersionEx


 
Dimka Maslov   (2003-12-17 15:24) [2]

http://delphibase.endimus.com/?action=viewtopic&topic=sysparams


 
MoGiLsHiKK   (2003-12-17 15:27) [3]

To Внук
А какой возвращяемый результат?
И как полностью выглядит команда ?: application.getversionEX?


 
Внук   (2003-12-17 15:30) [4]

А ключ от квартиры? А от дохлого осла уши?


 
Amoeba   (2003-12-17 15:34) [5]

application.getversionEX? Ну ты и загнул! Это ведь WinAPI ф-ия, живет в windows.pas


 
MoGiLsHiKK   (2003-12-17 15:42) [6]

Не пойму ,а что все таки надо писать в скобках getversionEX(***)


 
serge   (2003-12-17 15:49) [7]

A help nelizia procitati da ?

The GetVersionEx function obtains extended information about the version of the operating system that is currently running.

BOOL GetVersionEx(

LPOSVERSIONINFO lpVersionInformation // pointer to version information structure
);


Parameters

lpVersionInformation

Pointer to an OSVERSIONINFO data structure that the function fills with operating system version information.
Before calling the GetVersionEx function, set the dwOSVersionInfoSize member of the OSVERSIONINFO data structure to sizeof
(OSVERSIONINFO).

typedef struct _OSVERSIONINFO{
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
TCHAR szCSDVersion[ 128 ];
} OSVERSIONINFO;


 
Anatoly Podgoretsky   (2003-12-17 15:53) [8]

http://podgoretsky.com/ftp/Language/nps/ru.delphi.html


Q-114: Как узнать версию Windows?
Использовать функцию 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

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

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 – доп. инфо, может и не быть

Alexander Kramarenko
++++++++++++++++++++++++++++++++++++++++++++++++++++

type
TWinVersion = (wvUnknown,wv95,wv98,wvME,wvNT3,wvNT4,wvW2K,wvXP);

function DetectWinVersion : TWinVersion;
var
OSVersionInfo : TOSVersionInfo;
begin
Result := wvUnknown;
OSVersionInfo.dwOSVersionInfoSize := sizeof(TOSVersionInfo);
if GetVersionEx(OSVersionInfo) then begin
case OSVersionInfo.DwMajorVersion of
3: Result := wvNT3;
4: case OSVersionInfo.DwMinorVersion of
0: if OSVersionInfo.dwPlatformId = VER_PLATFORM_WIN32_NT
then Result := wvNT4
else Result := wv95;
10: Result := wv98;
90: Result := wvME;
end;
5: case OSVersionInfo.DwMinorVersion of
0: Result := wvW2K;
1: Result := wvXP;
end;
end;
end;
end;

function DetectWinVersionStr : string;
const
VersStr : array[TWinVersion] of string = (
"Unknown",
"Windows 95",
"Windows 98",
"Windows ME",
"Windows NT 3",
"Windows NT 4",
"Windows 2000",
"Windows XP");
begin
Result := VersStr[DetectWinVersion];
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Ver := DetectWinVersion;
Label1.Caption := IntToStr(Ord(DetectWinVersion));
Label2.Caption := DetectWinVersionStr;
end;

Анатолий Подгорецкий
+++++++++++++++++++++++++++++++

глобальные переменные Win32Platform (в справке),
Win32MajorVersion,
Win32MinorVersion,
Win32BuildNumber (в модуле SysUtils).

Инициализируются они автоматически, остается только проверить их.

Юрий Зотов


 
MoGiLsHiKK   (2003-12-17 16:03) [9]

Всем БОЛЬШОЕ СПАСИБО!!!
сейчас буду пробовать , может что и получиться:))



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

Форум: "Основная";
Текущий архив: 2003.12.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.009 c
3-99480
Dimaz-z
2003-12-04 21:20
2003.12.30
Проблема с индексами в ClientDataSet!


6-99664
Vinter
2003-11-03 11:56
2003.12.30
как остановить работу IdHTTP1.Get


8-99662
mrAld
2003-08-28 14:33
2003.12.30
Термин


4-99814
Дубинин Алексей
2003-10-31 21:55
2003.12.30
Как определить какое приложение запускается


7-99800
Talla2k
2003-10-23 01:49
2003.12.30
тормоза потока





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский