Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.20;
Скачать: CL | DM;

Вниз

Основные характеристики   Найти похожие ветки 

 
AquaSun1   (2002-10-31 07:39) [0]

Мастера, подскажите как программно:
Выяснить тип ОС;
Частоту процессора;
и м.б. другие основные хар-ки компа?
Заранее спасибо.


 
Ricky-Ticky-Tavy ©   (2002-10-31 08:00) [1]

Тип ОС - из реестра HKLM\Software\Microsoft\Windows\CurrentVersion
Частота процессора в win9x/me определяется функцией
function GetCPUSpeed: Double;
const
DelayTime = 500; // measure time in ms
var
TimerHi, TimerLo: DWORD;
PriorityClass, Priority: Integer;
begin
PriorityClass := GetPriorityClass(GetCurrentProcess);
Priority := GetThreadPriority(GetCurrentThread);

SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);

Sleep(10);
asm
dw 310Fh // rdtsc
mov TimerLo, eax
mov TimerHi, edx
end;
Sleep(DelayTime);
asm
dw 310Fh // rdtsc
sub eax, TimerLo
sbb edx, TimerHi
mov TimerLo, eax
mov TimerHi, edx
end;

SetThreadPriority(GetCurrentThread, Priority);
SetPriorityClass(GetCurrentProcess, PriorityClass);

Result := TimerLo / (1000.0 * DelayTime);
end;
В win nt/2k частота есть в реестре
HKLM\Hardware\Description\System\CentralProcessor\0 ~MHz
Марка процессора в win9x/nt/me/2k тоже в реестре
HKLM\Hardware\Description\System\CentralProcessor\0 Identifier
Объм ОП в win 9x/nt/me/2k определяется ф-ей
var
MemStatus: TMemoryStatus;
...
begin
...
GlobalMemoryStatus(MemStatus);
...Caption:=MemStatus.dwTotalPhys;
...
end;
В реестре winnt/2k в HKLM\Hardware\DeviceMap\ валяется полный список оборудования


 
Ricky-Ticky-Tavy ©   (2002-10-31 09:33) [2]

Дополнение: на www.sources.ru валяются исходники на С++, как получить список IDE/ATAPI.


 
AquaSun1   (2002-11-01 04:49) [3]

Спосибо Ricky-Ticky-Tavy! Завтра проверю.


 
Akella ©   (2002-11-01 08:25) [4]

http://www.delphikingdom.com/mastering/wmi.htm#02


 
AquaSun1   (2002-11-02 04:10) [5]

У меня стоят 2 системы Win98 и Win2000Server:
Ветка HKLM\Software\Microsoft\Windows\CurrentVersion
подходит для Win98, а для Win2000Server информация о том,
что это Win2000Server находится в ветке
HKLM\Software\Microsoft\Windows NT\CurrentVersion
и как парадокс я должен знать какая у меня загружена система
для того, чтобы узнать какая у меня загружена система.
Причём в реестрах обоих систем имеются обе эти ветки.
Нет, конечно я могу посмотреть и туда и туда, и там где
находится параметр ProductName посмотреть что у нас за
система, но мне слабо верится, что нужно поступать именно так.
Может имеется какая нибудь команда WIN API, для просмотра
информации о системе. К сожалению у меня нет описания этих
команд.


 
Azazello   (2002-11-04 16:32) [6]

Для определения операционной системы используй GetVersion()
Описание смотри в MSDN


 
AquaSun1   (2002-11-09 03:03) [7]

Действительно, есть функция GetVersionEx(). Разобравшись, у меня получилось следующее:

procedure TForm1.BitBtn1Click(Sender: TObject);
Var OSVI:OSVERSIONINFO;
begin
OSVI.dwOSVersionInfoSize:=sizeof(OSVERSIONINFO);
If GetVersionEx(OSVI) Then
Begin
Label1.Caption:="Объём информации = "+IntToStr(OSVI.dwOSVersionInfoSize);
Label2.Caption:="Version Number = "+IntToStr(OSVI.dwMajorVersion)+"."+IntToStr(OSVI.dwMinorVersion);
Label3.Caption:="Build = "+IntToStr(OSVI.dwBuildNumber);
Label4.Caption:="Platform Id = "+IntToStr(OSVI.dwPlatformId);
Label5.Caption:="Доп. информация = "+OSVI.szCSDVersion;
End;
end;


Правда единственное, что мне может быть здесь полезным, так это то, что в Win98 dwPlatformId=1, а в Win2000 dwPlatformId=2. Однако подозреваю, что и в Win95 dwPlatformId=1, а в каком-нибудь WinXP dwPlatformId=2 (пока правда не проверял :)). Поэтому неполучается выяснить точно тип ОС. А в реестр всётаки нехотелось бы лезть.



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

Текущий архив: 2003.01.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
3-62369
vopros
2002-12-24 16:24
2003.01.20
Есть Qreport там как известно настройка принтера и печать


1-62568
+++Ulf+++
2003-01-11 10:03
2003.01.20
Функция поиска и удаления слов


4-62935
Chubais
2002-12-05 16:44
2003.01.20
Как добавить пункт меню к всплывающему меню?


8-62668
TheSight
2002-07-04 15:29
2003.01.20
Анализатор речи (схожести произношения)


14-62814
aga
2002-12-27 22:24
2003.01.20
Что купить???