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

Вниз

Версии ОС Windows   Найти похожие ветки 

 
Бук   (2003-01-13 08:28) [0]

Как программно узнать версию Windows, из-под которой запускается программа?
Предполагаю, что надо писать
{$IFDEF}
а что должно быть тут?

Я просто не знаю обозначения всех осей. 95-й, NT, 98-й и. т. д
Выручайте!


 
MBo   (2003-01-13 08:35) [1]

GetVersionEx
а {$IFDEF} - только при компиляции влияет


 
Сергей Бушин   (2003-01-13 08:51) [2]

Для того чтобы программно узнать версию Windows под которой запускается Ваше приложение есть несколько способов.
1. Win API - GetVersion, GetVersionEx
2. В Delphi есть переменная Win32Platform. Нажмите F1 и узнаете.
Есть наверно и еще, не знаю, но все это можно найти простым нажатием F1.
А то что предлагает Вы, то это называется директивы условной компиляции. Например начиная с Delphi 6 имеются такая директива как MSWINDOWS, а в Kylux есть LINUX, если Вы в своем коде напишите:

{$IFDEF MSWINDOWS}
MyWinodwsProc;
{Данный участок будет компилироваться только в Windows, т.к. в Delphi определен MSWINDOWS, а в Kylux это компилятор воспринимать не будет, т.к. ему не известно MSWINDOWS}
{$ENDIF}
...
{$IFDEF LINUX}
MyLinusProc;//тоже самое только наоборот
{$ENDIF}


Имеется способ определить под какой версией Delphi происходит компиляция при помощи директив условной компиляции, но узнать версию Windows при помощи директив условной компиляции Вы не сможете.

Извините, но иногда надо читать книги. Данный момент, очень хорошо описан в любой начинающей книге.


 
Бук   (2003-01-13 08:55) [3]

ок... Спасибо


 
Delirium^.Tremens   (2003-01-13 09:20) [4]

Сказали же уже, что это только при компиляции, вот пример узнавания в run-time:

var osInfo: OSVERSIONINFO;
...
osInfo.dwOSVersionInfoSize := sizeof(OSVERSIONINFO);
GetVersionEx(osInfo);
if osInfo.dwPlatformId = VER_PLATFORM_WIN32_NT
then sysName := "Windows NT "+ IntToStr(osInfo.dwMajorVersion)
else if osInfo.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS
then sysName := "Windows "+ IntToStr(osInfo.dwMajorVersion);


 
Юрий Зотов   (2003-01-13 09:50) [5]

Не нужно писать свой код. Есть уже готовая информация: Win32Platform, Win32MajorVersion, Win32MinorVersion, Win32BuildNumber. Остается только проверить.


 
GrayWolf   (2003-01-13 21:05) [6]

Я бы добавил еще такую информацию (но идея Ю. Зотова верна!):

function GetOperatingSystem : integer;
var

osVerInfo : TOSVersionInfo;
majorVer, minorVer : Integer;
begin

result := cOsUnknown;
{ set operating system type flag }
osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
if GetVersionEx(osVerInfo) then
begin
majorVer := osVerInfo.dwMajorVersion;
minorVer := osVerInfo.dwMinorVersion;
case osVerInfo.dwPlatformId of
VER_PLATFORM_WIN32_NT : { Windows NT/2000 }
begin
if majorVer <= 4 then
result := cOsWinNT
else if (majorVer = 5) AND (minorVer= 0) then
result := cOsWin2000
else if (majorVer = 5) AND (minorVer = 1) then
result := cOsWhistler
else
result := cOsUnknown;
end;
VER_PLATFORM_WIN32_WINDOWS : { Windows 9x/ME }
begin
if (majorVer = 4) AND (minorVer = 0) then
result := cOsWin95
else if (majorVer = 4) AND (minorVer = 10) then
begin
if osVerInfo.szCSDVersion[1] = "A" then
result := cOsWin98SE
else
result := cOsWin98;
end
else if (majorVer = 4) AND (minorVer = 90) then
result := cOsWinME
else
result := cOsUnknown;
end;
else
result := cOsUnknown;
end;
end
else
result := cOsUnknown;
end;


(Взято из справочника Kuliba)



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

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

Наверх




Память: 0.46 MB
Время: 0.011 c
3-72051
Tyke
2003-01-05 10:34
2003.01.23
Обновление записей в DataSet


1-72210
ArhangeJI
2003-01-14 12:42
2003.01.23
ComboBox как избавиться от двух символов в конце текста...


8-72416
step[B.M.]
2002-10-07 11:53
2003.01.23
Надо писать звук со входа звуковой карты в mp3


3-72044
al3202
2003-01-04 22:41
2003.01.23
DBGrid


14-72512
ZiLot
2003-01-06 08:46
2003.01.23
InstallShield & BDE





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