Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать под какой операционкой запущено приложение? [D6, Win95/98, WinME, NT4, Win2k, WinXP]


DiGiTaL ©   (2002-05-07 16:02:00) 

Как узнать под какой операционкой запущено приложение?


DiGiTaL   (2002-05-08 03:10:00) [1]

Спасибо!


BAHO   (2002-05-08 00:25:00) [2]

да там после обьявления типов я забыл End;


BAHO   (2002-05-08 00:24:00) [3]


type
TOperatingSystem=(Windows95,Windows98,
WindowsME,WindowsNT,Windows2k,WindowsXP);

TOsInf = record
WinDir:string[255];
SysDir:string[255];
OS:TOperatingSystem;

var
OS:TOsInf;

implementation

procedure GetSysInfo(var OS:TOsInf);
var
ptr:PChar;
OSV:TOSVersionInfo;
procedure ClearMem(var X; Size: Integer);
asm
push edi
mov edi, eax
xor eax, eax
mov ecx, edx
sar ecx, 2
rep stosd
mov ecx, edx
and ecx, 3
rep stosb
pop edi
end;
begin
ptr:=windows.GetEnvironmentStrings;
windows.GetWindowsDirectory(ptr,MAX_PATH);
os.WinDir:=ptr;
windows.GetSystemDirectory(ptr,MAX_PATH);
os.SysDir:=ptr;
ClearMem(OSV,SizeOf(OSV));
OSv.dwOSVersionInfoSize:=SizeOf(OSV);
GetVersionEx(OSV);
case OSV.dwPlatformId
of
VER_PLATFORM_WIN32_WINDOWS:
begin
if OSV.dwMajorVersion=4
then
begin
if OSV.dwMinorVersion>=0.0
then OS.OS:=Windows95;
if OSV.dwMinorVersion>=10
then OS.OS:=Windows98;
if OSV.dwMinorVersion>=90
then OS.OS:=WindowsME;
end;
end;
VER_PLATFORM_WIN32_NT:
begin
if OSV.dwMinorVersion<=4
then OS.OS:=WindowsNT;
if OSV.dwMajorVersion=5
then
begin
if OSV.dwMinorVersion>=0.0
then OS.OS:=Windows2k;
if OSV.dwMinorVersion>=1
then OS.OS:=WindowsXP;
end;
end;
end;
end;

procedure TCCS.FormCreate(Sender: TObject);
begin
GetSysInfo(OS);
end;


В переменной OS
после запуска проги будет инфа о версии Windows
и месторасположение системных папок...


DiGiTaL   (2002-05-08 00:02:00) [4]

Так не нашел я там. :(
Кстати, мою прогу не смотрел?


Song   (2002-05-07 22:00:00) [5]

В Windows.pas прописаны эти константы.


DiGiTaL   (2002-05-07 21:58:00) [6]

Ой запутался я что-то.
Win32Platform возвращает Integer. Как его интерпретировать - неясно. В хелпе написано "смотри в windows.pas". там я ничо не нашел.


troits   (2002-05-07 16:12:00) [7]

Можно посмотреть значение переменной

Win32Platform из SysUtils.pas

VER_PLATFORM_WIN32s System is Win32s.
VER_PLATFORM_WIN32_WINDOWS System is Windows 95.
VER_PLATFORM_WIN32_NT System is Windows NT.


Виктор Щербаков   (2002-05-07 16:04:00) [8]

GetVersionEx


Наверх

Титульная страница Поиск, карта сайта Написать письмо