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

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

Частота компа [Win95/98, WinME, NT4, Win2k, WinXP]


ASMiD ©   (2004-03-20 14:54:00) 

Сэры!
Подскажите плз, как получить частоту компьютера и тип видеокарты?


Ozone   (2004-03-29 16:15:00) [1]

Практически всю информацию о комп-ре дает WMI...


SEvgeniy   (2004-03-29 15:36:00) [2]

это,вероятно, частота с которой компьютер скачет по столу ж)


Digitman   (2004-03-29 15:18:00) [3]


> VMcL


это частота такого компьютера, в составе которого ничего кроме мультивибратора, задающего некую одну-единственную периодическую импульсную последовательность, больше ничего нет .. даже того же блока питания ... ибо говорить о каких-то там "частотах", когда речь идет об импульсном БП, попросту глупо


VMcL   (2004-03-29 14:47:00) [4]

>>ASMiD  (20.03.04 14:54)

Что такое "частота компьютера", стесняюсь спросить?


Raki   (2004-03-28 14:31:00) [5]

Эта функция определяет реальную частоту проца.(У меня при заявленной 1834 показывает от 1840 до 1880)

function GetCPUFrequency: word;
var
 TimeStart: integer;
 TimeStop: integer;
 StartTicks: dword;
 EndTicks: dword;
 TotalTicks: dword;
 cpuSpeed: dword;
 NeverExit: Boolean;
begin
 TimeStart:=0;
 TimeStop:=0;
 StartTicks:=0;
 EndTicks:=0;
 TotalTicks:=0;
 cpuSpeed:=0;
 NeverExit:=True;
 TimeStart:=timeGetTime;
 while NeverExit do
 begin
   TimeStop:=timeGetTime;
   if ((TimeStop-TimeStart)>1) then
   begin
     asm
       xor eax,eax
       xor ebx,ebx
       xor ecx,ecx
       xor edx,edx
       db $0F,$A2 /// cpuid
       db $0F,$31 /// rdtsc
       mov StartTicks,eax
     end;
     Break;
   end;
 end;
 TimeStart:=TimeStop;
 while NeverExit do
 begin
   TimeStop:=timeGetTime;
   if ((TimeStop-TimeStart)>1000) then
   begin
     asm
       xor eax,eax
       xor ebx,ebx
       xor ecx,ecx
       xor edx,edx
       db $0F,$A2 /// cpuid
       db $0F,$31 /// rdtsc
       mov EndTicks,eax
     end;
     Break;
   end;
 end;
 TotalTicks:=EndTicks-StartTicks;
 cpuSpeed:=TotalTicks div 1000000;
 GetCPUFrequency:=cpuSpeed;
end;

А вот пример получения информации о видеокарте

procedure TForm1.button1click(Sender: TObject);
var
 lpDisplayDevice: TDisplayDevice;
 dwFlags: DWORD;
 cc: DWORD;
begin
 form1.memo1.Clear;
 lpDisplayDevice.cb := sizeof(lpDisplayDevice);
 dwFlags := 0;
 cc := 0;
 while EnumDisplayDevices(nil, cc, lpDisplayDevice, dwFlags) do
 begin
   Inc(cc);
   form1.memo1.lines.add(lpDisplayDevice.DeviceString);
   {Так же мы увидим дополнительную информацию в lpDisplayDevice}
   
 end;
end;

Если понадобятся процедуры для нахождения более расширенной инфы про проц-скажи. Единственное, пока не могу найти процедуру для определения объема памяти видеокарты.


Наверх

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