![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать под какой операционкой запущено приложение? [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