Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2013, 20:13   #1
Alex2009
Proger Man
Форумчанин
 
Аватар для Alex2009
 
Регистрация: 07.03.2009
Сообщений: 584
По умолчанию Получить температуру ЦП

Вечер добрый!
Столкнулся с такой проблемой, пишу компонент который получает системную информацию компьютера, много чего уже реализовано, но вот столкнулся с получением температуры ЦП. Пробовал примеры из google на WMI переделать под код для компонента но не получаю в конечном результате ни какой информации об температуре ЦП.
Прошу помощи знатоков.
ShowMessage('Добро пожаловать!');
Alex2009 вне форума Ответить с цитированием
Старый 31.01.2013, 20:21   #2
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

и это всё не работает?
http://chingachgook.net/delphi/tempe...na-delphi.html
http://www.programmersforum.ru/showthread.php?t=5420
http://www.delphikingdom.com/asp/vie...?catalogid=698
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 31.01.2013, 21:21   #3
Alex2009
Proger Man
Форумчанин
 
Аватар для Alex2009
 
Регистрация: 07.03.2009
Сообщений: 584
По умолчанию

Нет, к сожалению не работает
Вот так пробовал записать в компонент.

Код:
function TSystemInfo.getCPUTemp:string;
var
  tmp1: byte;
  tmp2: byte;
  Temp: word; // 16-bit unsigned integer
  Temp1: integer;
  i:integer;
begin
  asm
	mov	cx,128    //decimal, poll busy flag max. 128 times
	mov	dx,$0295
@WaitReady1:
	in	al,dx
	and	al,128 //decimal
	jz	@ExitWait
	dec	cx
	jnz	@WaitReady1
@ExitWait:
 	mov	dx,$0295
	mov	al,78 // 78 dec. is the bank select register
	out	dx,al
	inc	dx
	mov	al,1 // select bank 1
	out	dx,al
	mov	dx,0295h
	mov	al,80 // 80 dec. is the temperature High register
	out	dx,al
	inc	dx
	in	al,dx // fetch temp Hi from 81 dec.
	shl	al,1
	mov	tmp1,al
	mov	dx,0295h
	mov	al,81 // 81 dec. is the temperature Low register
	out	dx,al
	inc	dx
	in	al,dx // fetch temp Lo from 82 dec.
	shr	al,7
	mov	tmp2,al
  // calculate reading
	xor	ah,ah
	xor	cx,cx
	mov	al,tmp1
	mov	cl,tmp2
	add	ax,cx
	shr	ax,1
  mov Temp,ax
  end;
  Temp1:=0;
  if (Temp>0) and (Temp<100) then
  begin
    for i:=0 to 3 do AverageTemp[i]:=AverageTemp[i+1];
    AverageTemp[4]:=Temp;
    if AverageTemp[0]=0 then for i:=0 to 3 do AverageTemp[i]:=AverageTemp[4];
    for i:=0 to 4 do Temp1:=Temp1+AverageTemp[i];
    Temp1:=round(Temp1 / 5);
  end;
  if Temp1<0 then Temp1:=0;
  if Temp1>65536 then Temp1:=0;

  Result:=IntToStr(Temp1);
  fProgramFilesDir:=result;
end;
Получаю ошибку privileged instruction как на скрине
Изображения
Тип файла: jpg Безымянный.jpg (52.1 Кб, 144 просмотров)
ShowMessage('Добро пожаловать!');

Последний раз редактировалось Alex2009; 31.01.2013 в 23:48.
Alex2009 вне форума Ответить с цитированием
Старый 01.02.2013, 16:25   #4
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

У меня проект из http://www.programmersforum.ru/showthread.php?t=5420
прекрасно запустился и даже температуру показывает
может скажите на какай строчке ошибка?
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 02.02.2013, 18:16   #5
Alex2009
Proger Man
Форумчанин
 
Аватар для Alex2009
 
Регистрация: 07.03.2009
Сообщений: 584
По умолчанию

Цитата:
Сообщение от BARNEY Посмотреть сообщение
может скажите на какай строчке ошибка?
Ошибка вылетает при добавлении компонента на форму.
ShowMessage('Добро пожаловать!');
Alex2009 вне форума Ответить с цитированием
Старый 02.02.2013, 18:55   #6
Alex2009
Proger Man
Форумчанин
 
Аватар для Alex2009
 
Регистрация: 07.03.2009
Сообщений: 584
По умолчанию

Вот программа сделана для примера работы моего компонента "System Info.

Жду критики и идей в ЛС.
Вложения
Тип файла: zip System Info.zip (619.7 Кб, 70 просмотров)
ShowMessage('Добро пожаловать!');
Alex2009 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
НЕ показывает температуру жесткого диска zigiundovich Компьютерное железо 8 27.12.2012 09:09
как узнать температуру процессора Даниил_глазко Общие вопросы Delphi 3 07.02.2012 13:04
про температуру воздуха MariKa-91 Microsoft Office Excel 0 04.06.2010 21:05
Как снизить температуру процессора? Ромио Безопасность, Шифрование 16 30.08.2009 16:57
Как определить температуру ЦП? MalCer Общие вопросы Delphi 2 27.04.2009 20:24