Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Круглый стол
  
Правила КС
>> Настройки

Фильтр вопросов
>> Новые вопросы
отслеживать по
>> Новые ответы

Избранное

Страница вопросов
Поиск по КС


Специальные проекты:
>> К л ю к в а
>> Г о л о в о л о м к и

Вопрос №

Задать вопрос
Off-topic вопросы

Помощь

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  11:15[Войти] | [Зарегистрироваться]
Ответ на вопрос № 52037

18-05-2007 00:26
Доброе время суток !

Подскажите пожалуста каким образом можно определить
следующую инфу о железе:
тип CPU и % загрузки
объём RAM и свободно RAM ???


Заранее спасибо за ответ . . .

[+] Добавить в избранные вопросы

Отслеживать ответы на этот вопрос по RSS

Ответы:


Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице.
Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.

28-05-2007 22:18 | Сообщение от автора вопроса
Большое спасибо всем кто помог разобраться мне с этим вопросом.

28-05-2007 07:11
Две последние цифры это просто версия, вам нужен документ у которого "666" в середине.

28-05-2007 01:51 | Сообщение от автора вопроса
ftp://download.intel.com/design/Pentium4/manuals/25366618.pdf
такого мануала там нет . . .

28-05-2007 01:18
хотя бы в двух словах . . .
Вот тут страниц 30 по теме:
ftp://download.intel.com/design/Pentium4/manuals/25366618.pdf

27-05-2007 20:39 | Сообщение от автора вопроса
Интересно, почему ВСЕ рассматривают assembler как панацею от всех бед??
Дело в том что я только начал разбираться в ASM-е.
DRON, большое человеческое СПАИБО!
Если не сложно хотелось бы комментарий к:

function GetCPUName:string;


хотя бы в двух словах . . .

27-05-2007 06:03 | Комментарий к предыдущим ответам
>>> как через asm найти
Интересно, почему ВСЕ рассматривают assembler как панацею от всех бед??

25-05-2007 02:57

function GetCPUName:string;
type
  TRegisters=record
    case Integer of
      0:(EAX,EBX,ECX,EDX:Cardinal);
      1:(Str:array[0..15] of Char);
  end;

  function IsCPUID_Available:Boolean; register;
  asm
  PUSHFD
  POP    EAX
  MOV    EDX, EAX
  XOR    EAX, $200000;
  PUSH    EAX
  POPFD
  PUSHFD
  POP    EAX
  XOR    EAX, EDX
  SETNZ  AL
 
end;

  procedure GetCPUID(Param:Cardinal; var Registers:TRegisters); register;
  asm
  PUSH    EBX
  PUSH    EDI
  MOV    EDI, Registers
  XOR    EBX, EBX
  XOR    ECX, ECX
  XOR    EDX, EDX
  CPUID
  MOV    TRegisters(EDI).&EAX, EAX
  MOV    TRegisters(EDI).&EBX, EBX
  MOV    TRegisters(EDI).&ECX, ECX
  MOV    TRegisters(EDI).&EDX, EDX
  POP    EDI
  POP    EBX
 
end;
var
  Registers:TRegisters;
begin
  Result:='';
  if not IsCPUID_Available then Exit;
  GetCPUID($80000000,Registers);
  if Registers.EAX>=$80000004 then begin
    GetCPUID($80000002,Registers);
    Result:=Result+Registers.Str;
    GetCPUID($80000003,Registers);
    Result:=Result+Registers.Str;
    GetCPUID($80000004,Registers);
    Result:=Result+Registers.Str;
  end;
end;


23-05-2007 22:12 | Сообщение от автора вопроса
а может всётаки кто-нибудь знает как через asm найти:
HARDWARE\DESCRIPTION\SYSTEM\CentralProcessor\ProcessorNameString

22-05-2007 13:02
>>> HKEY_DYN_DATA
Такой ветки в реестре больше нет, а если и есть то полагаться на данные, даваемые ею очень опрометчиво, читайте информацию по WMI - кое что из того, что вам нужно там точно есть. Если бы вы поискали информацию про загрузку памяти, то легко нашли бы GlobalMemoryStatus. То же касается всей остальной информации.

21-05-2007 19:25 | Сообщение от автора вопроса
для определения % загрузки CPU
написал следующий код:
(использовал примеры из DRKB)



  function NtQuerySystemInformation (
              SystemInformationClass : DWORD;    // тип требуемой информации
                    SystemInformation : Pointer;  // указатель на буфер, в который вернется информация
              SystemInformationLength : DWORD;    // размер буфера в байтах
                    var ReturnLength : DWORD    // сколько байт было возвращено или требуется
                                    ) : DWORD; stdcall; external 'ntdll.dll';
var
      nOldIdleTime : int64 = 0;
    nOldSystemTime : int64 = 0;
        nNewCPUTime : double = 0;
{ ......................... }
function CPUUsage : string;
type
  SYSTEM_BASIC_INFORMATION = packed record

                  AlwaysZero : ULONG;
        uKeMaximumIncrement : ULONG;
                  uPageSize : ULONG;
    uMmNumberOfPhysicalPages : ULONG;
      uMmLowestPhysicalPage : ULONG;
      uMmHighestPhysicalPage : ULONG;
      uAllocationGranularity : ULONG;
          pLowestUserAddress : POINTER;
      pMmHighestUserAddress : POINTER;
        uKeActiveProcessors : POINTER;
        bKeNumberProcessors : byte;
                      Filler : array [0..2] of byte;
  end;

  SYSTEM_TIME_INFORMATION = packed record
          nKeBootTime : int64;
        nKeSystemTime : int64;
      nExpTimeZoneBias : int64;
    uCurrentTimeZoneId : ULONG;
            dwReserved : DWORD;
  end;

  SYSTEM_PERFORMANCE_INFORMATION = packed record
    nIdleTime : int64;
      dwSpare : array [0..75] of DWORD;
  end;

const
        SystemBasicInformation = 0;
    SystemTimeOfDayInformation = 3;
  SystemPerformanceInformation = 2;
var
            SBI : SYSTEM_BASIC_INFORMATION;
            STI : SYSTEM_TIME_INFORMATION;
            SPI : SYSTEM_PERFORMANCE_INFORMATION;

          dummy : DWORD;
begin
  if NTQuerySystemInformation (SystemBasicInformation,
                              @SBI,
                              SizeOf (SYSTEM_BASIC_INFORMATION),
                              dummy) = NO_ERROR then
    if NTQuerySystemInformation (SystemTimeOfDayInformation,
                                @STI,
                                SizeOf (SYSTEM_TIME_INFORMATION),
                                dummy) = NO_ERROR then
      if NTQuerySystemInformation (SystemPerformanceInformation,
                                  @SPI,
                                  SizeOf (SYSTEM_PERFORMANCE_INFORMATION),
                                  dummy) = NO_ERROR then
        begin
          if (nOldIdleTime <> 0) then
          begin
            nNewCPUTime := RoundTo( (100 - ((SPI.nIdleTime - nOldIdleTime)
                                  / (STI.nKeSystemTime - nOldSystemTime) * 100)
                                  / SBI.bKeNumberProcessors + 0.5),-2);
            if (nNewCPUTime <> nOldIdleTime) then
            result := FloatToStr(nNewCPUTIME);

          end;
            nOldIdleTime := SPI.nIdleTime;
          nOldSystemTime := STI.nKeSystemTime;
        end;
end;


Для меня это оптимальный вариант
Может быть ещё кому пригодится ...

21-05-2007 00:01 | Сообщение от автора вопроса
впервые сталкиваюсь с таким негативом,
большое спасибо за помощь

20-05-2007 23:54 | Замечание модератора
считаю "Замечание модератора"
СОВЕРШЕННО  НЕ  ОБОСНОВАННЫМ !!!


Зато теперь у модератора появились основания закрыть ваш вопрос! ;-Р За препирательство с модератором! ;-)))))))

А если серьёзно, то ситуация такая: во-первых, если бы я считал, что в offtopic-вопросах есть все нужные вам ответы, ваш вопрос вообще бы не попал на Круглый стол. Именно поэтому я вопрос пропустил, но тут же указал, что по крайней мере один ответ вы могли бы найти самостоятельно. Во-вторых, если вы выполнили правила сайта и действительно прочитали offtopic-вопросы, нашли там, как измерить загрузку процессора, но вам этот ответ не подошёл, то вам следовало написать в своём вопросе, почему он вам не подошёл. Тогда бы вопросов к вам не было. А сейчас из вашего вопроса не видно, что вы смотрели offtopic-вопросы, а раз так, то замечание модератора совершенно обосновано.

20-05-2007 21:34 | Сообщение от автора вопроса
считаю "Замечание модератора"
СОВЕРШЕННО  НЕ  ОБОСНОВАННЫМ !!!

18-05-2007 03:20 | Сообщение от автора вопроса
хотелось бы обсудить определение % загрузки CPU через
HKEY_DYN_DATA PerfStats\StartStat\KERNEL\CPUusage,
а по поводу типа CPU:
То что в HARDWARE\DESCRIPTION\SYSTEM\CentralProcessor\VendorIdentifier можно найти так:


  asm
    mov eax,0
    cpuid
    mov dword ptr EBXstr+1,EBX
    mov byte ptr EBXstr,4
    mov dword ptr ECXstr+1,ECX
    mov byte ptr ECXstr,4
    mov dword ptr EDXstr+1,EDX
    mov byte ptr EDXstr,4
 
end;



а как таким же образом найти:
HARDWARE\DESCRIPTION\SYSTEM\CentralProcessor\ProcessorNameString
???

на это я ответа в offtopic не нашёл
извините если пропустил в спешке ...

18-05-2007 00:29 | Замечание модератора
А вы, когда задавали вопрос, не обратили внимания, что по правилам сайта вы сначала должны прочитать список offtopic-вопросов и убедиться, что вашего вопроса там нет? Например, вопрос по загрузке процессора там есть.

Добавьте свое cообщение

Вашe имя:  [Войти]
Ваш адрес (e-mail):На Королевстве все адреса защищаются от спам-роботов
контрольный вопрос:
Два кольца, два конца, посередине гвоздик.
в качестве ответа на вопрос или загадку следует давать только одно слово в именительном падеже и именно в такой форме, как оно используется в оригинале.
Надоело отвечать на странные вопросы? Зарегистрируйтесь на сайте.
Тип сообщения:
Текст:
Жирный шрифт  Наклонный шрифт  Подчеркнутый шрифт  Выравнивание по центру  Список  Заголовок  Разделительная линия  Код  Маленький шрифт  Крупный шрифт  Цитирование блока текста  Строчное цитирование
  • вопрос Круглого стола № XXX

  • вопрос № YYY в тесте № XXX Рыцарской Квинтаны

  • сообщение № YYY в теме № XXX Базарной площади
  • обсуждение темы № YYY Базарной площади
  •  
     Правила оформления сообщений на Королевстве

    Страница избранных вопросов Круглого стола.
      
    Время на сайте: GMT минус 5 часов

    Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
    Функция может не работать в некоторых версиях броузеров.

    Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
    Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

     
    © При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
    Все используемые на сайте торговые марки являются собственностью их производителей.

    Яндекс цитирования