Сейчас на форуме: bartolomeo, vasilevradislav, rmn, Magister Yoda (+7 невидимых)

 eXeL@B —› Программирование —› Help me in delphi
Посл.ответ Сообщение

Ранг: 281.8 (наставник), 272thx
Активность: 0.250.01
Статус: Участник
Destroyer of protectors

Создано: 10 декабря 2008 07:20
· Личное сообщение · #1

Всем доброго времени суток!
И снова тупик в моей голове, подскажите пожалуйста как узнать температуру проца (Intel).
Желательно на Delphi.
Заранее огромное спасибо!




Ранг: 192.7 (ветеран), 154thx
Активность: 0.070
Статус: Участник
The ONE

Создано: 10 декабря 2008 07:48
· Личное сообщение · #2

MasterSoft
Смотри тут http://forum.sources.ru/showtopic=116287&st=0&#entry869543

-----
Сотрудник DHARMA




Ранг: 281.8 (наставник), 272thx
Активность: 0.250.01
Статус: Участник
Destroyer of protectors

Создано: 10 декабря 2008 07:57
· Личное сообщение · #3

Спасибо!Но там я уже был.
Только там пример определения температуры мамки, а не процессора!



Ранг: 226.0 (наставник), 67thx
Активность: 0.160
Статус: Участник

Создано: 10 декабря 2008 10:40 · Поправил: SergX
· Личное сообщение · #4

почитай мануалы по команде CPUID.
на 100% не уверен но думаю что через неё можно получить.



Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 10 декабря 2008 10:42
· Личное сообщение · #5

Всем привет!Не знаю помогу ли, но вот ссылка на книжки по Delphi: golden-books.narod.ru/books/computer/programming/delphi/delphi.html. Скачка с letitbit.



Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 10 декабря 2008 10:55
· Личное сообщение · #6

Блин, точку в конце ссылки поставил, потому не работает! Вот рабочая: golden-books.narod.ru/books/computer/programming/delphi/delphi.html Не сочтите за флуд, просто ошибся



Ранг: 110.7 (ветеран)
Активность: 0.070
Статус: Участник
~ tPORt ~

Создано: 10 декабря 2008 10:56 · Поправил: LazzY
· Личное сообщение · #7

Вы осоловели чтоле совсем? погуглить слабо пред тем как постить?
http://www.google.com/search?client=opera&rls=ru&q=Delphi+%D0%BA%D0%B0 %D0%BA+%D1%83%D0%B7%D0%BD%D0%B0%D1%82%D1%8C+%D1%82%D0%B5%D0%BC%D0%BF%D 0%B5%D1%80%D0%B0%D1%82%D1%83%D1%80%D1%83+%D0%BF%D1%80%D0%BE%D1%86%D0%B 0&sourceid=opera&ie=utf-8&oe=utf-8 http://www.google.com/search?client=opera&rls=ru&q=Delphi+%D0%BA%D0%B0%D0%BA+%D1%83%D0%B7%D0%BD%D0%B0%D1%82%D1%8C+%D1%82%D0%B5%D0%BC%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D1%83%D1%80%D1%83+%D0%BF%D1%80%D0%BE%D1%86%D0%B0&sourceid=opera&ie=utf-8&oe=utf-8

add: фтопку letitbit, перезалейте уже на рапиду хотябы



Ранг: 281.8 (наставник), 272thx
Активность: 0.250.01
Статус: Участник
Destroyer of protectors

Создано: 10 декабря 2008 17:17 · Поправил: MasterSoft
· Личное сообщение · #8

LazzY
Гуглил всю ночь!
Не одного реально-работающего примера.

web_ster
Увы братан, не помог!



Ранг: 210.5 (наставник), 2thx
Активность: 0.140
Статус: Участник

Создано: 10 декабря 2008 17:55 · Поправил: arnix
· Личное сообщение · #9

MasterSoft

Если устраивает испоьзвание ActiveX то можно делать через WMI.

Component -> Import Component -> Import Type Library -> Microsoft WMI Scripting vX.X...

8803_10.12.2008_CRACKLAB.rU.tgz - CpuSysTemp.zip

ЗЫ:
Сам не проверял но работать должно



Ранг: 281.8 (наставник), 272thx
Активность: 0.250.01
Статус: Участник
Destroyer of protectors

Создано: 11 декабря 2008 03:02
· Личное сообщение · #10

arnix

Спасибо большое, но насколько я знаю WMI не даёт никакой универсальности.
Даже если использовать только на Intel.

Я вот нашёл функцию одну.
Может кто поможет, некомпилится, выскакивает Privileged instruction.

Собственно сама функция:

function ReadTemp:Word;
var
tmp1: byte;
tmp2: byte;
Temp: word;
Temp1: integer;
i:integer;
begin
asm
mov cx,128
mov dx,$0295
@WaitReady1:
in al,dx //ТУТ
and al,128
jz @ExitWait
dec cx
jnz @WaitReady1
@ExitWait:
mov dx,$0295
mov al,78
out dx,al
inc dx
mov al,1
out dx,al
mov dx,0295h
mov al,80
out dx,al
inc dx
in al,dx
shl al,1
mov tmp1,al
mov dx,0295h
mov al,81
out dx,al
inc dx
in al,dx
shr al,7
mov tmp2,al
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:=Temp1;
end;



Ранг: 21.9 (новичок)
Активность: 0.010
Статус: Участник

Создано: 11 декабря 2008 04:19 · Поправил: Yotun
· Личное сообщение · #11

MasterSoft
Естественно. Под WinNT и выше такой код работать не будет, если только ты не напишешь свой драйвер, в котором это будет работать.



Ранг: 281.8 (наставник), 272thx
Активность: 0.250.01
Статус: Участник
Destroyer of protectors

Создано: 11 декабря 2008 04:43
· Личное сообщение · #12

Yotun
Спасибо, просветил.
А переделать код никак нельзя?




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 11 декабря 2008 09:20
· Личное сообщение · #13

А переделать код никак нельзя?

Разве что WinNT поставить Напиши драйвер, в нем сможешь с in/out к портам обращаться или ищи другую реализацию

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 226.0 (наставник), 67thx
Активность: 0.160
Статус: Участник

Создано: 11 декабря 2008 11:40
· Личное сообщение · #14

MasterSoft тебе эта процедура даже с драйвером ничем не поможет. Для разных чипсетов адреса будут разные. Копай в сторону WMI.



Ранг: 281.8 (наставник), 272thx
Активность: 0.250.01
Статус: Участник
Destroyer of protectors

Создано: 11 декабря 2008 18:14
· Личное сообщение · #15

coderess
Извини но WinNT на х.. мне не нужен, должно работать под XP, Vista.

SergX
Просто нет желания использовать WMI (как уже писал способ не универсален).
Из bios никак нельзя прочитать случайно?
Кстати на асме не похожего кода (переделал бы).

ЗЫ
Вообще я хотел определить температуру мамки, видеокарты, hdd и процессора.
Думал, что данные проца будет легче всего выяснить, оказалось наобарот!



Ранг: 210.5 (наставник), 2thx
Активность: 0.140
Статус: Участник

Создано: 11 декабря 2008 18:23 · Поправил: arnix
· Личное сообщение · #16

MasterSoft

Еще вариант - www.hwinfo.com
Там есть SDK

Добавлено:
Оказалось за SDK они деньги хотят



Ранг: 11.1 (новичок)
Активность: 0=0
Статус: Участник

Создано: 11 декабря 2008 19:05
· Личное сообщение · #17

вставлю и свои 3 копейки: по моему, только 2 варианта - либо WMI, либо собирать базу спецификаций для всего разнообразия железа.



Ранг: 281.8 (наставник), 272thx
Активность: 0.250.01
Статус: Участник
Destroyer of protectors

Создано: 11 декабря 2008 19:14
· Личное сообщение · #18

Отдам даже свои 3 копейки, но только не WMI.
Кстати вот мне arnix подсказал этот компонент, ничЁ вроде www.hwinfo.com

ЗЫ
Не знаете где его можно скачать хотя бы триал?!



Ранг: 281.8 (наставник), 272thx
Активность: 0.250.01
Статус: Участник
Destroyer of protectors

Создано: 12 декабря 2008 12:30
· Личное сообщение · #19

Я всё-таки нашёл применение данному коду.
Использовал самописный драйвер от Криса Касперски (giveio.sys).
Всё работает, но правдо к железу привередлив. (на компе нормально, на ноуте показывает 0).

Выкладываю сорцы с бинарником, если может кто протестируйте на висте!

1ca0_12.12.2008_CRACKLAB.rU.tgz - cpu.rar



Ранг: 34.8 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 12 декабря 2008 20:09
· Личное сообщение · #20

пользуясь данным постом, есть вопрос по дельфе что бы не создавать новый топ вот вопрос... вопрос тупой но меня мучает не могу разобраться! как в дельфе сделать чтобы по нажатии на батон1 выскакивал попап меню1 как в DiE по нажатии на кнопку ">>" (вкладка: Scan над кнопкой Open PE) вариант появления по позиции курсора не идёт... помогите




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 12 декабря 2008 20:46
· Личное сообщение · #21

lobs, попробуй так, у меня работает:

Code:
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. begin
  3.   PopupMenu1.Popup(Form1.Left + Button1.Left + Button1.Width + 4,
  4.                    Form1.Top + 22 + Button1.Top);
  5. end;


-----
Лучше быть одиноким, но свободным © $me




Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 12 декабря 2008 21:14
· Личное сообщение · #22

lobs
На дельфи итак все облегчено до безумия, а тут и думать не хочешь. Какой же тогда ты девелопер ?

-----
My love is very cool girl.




Ранг: 34.8 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 12 декабря 2008 21:54
· Личное сообщение · #23

borov пишет:
lobs, попробуй так, у меня работает:

спасибо большое! то, что нужно!

theCollision пишет:
lobs
На дельфи итак все облегчено до безумия, а тут и думать не хочешь. Какой же тогда ты девелопер ?


ты прав! но я столько мучался не получалось! поэтому решил спросить...



Ранг: 281.8 (наставник), 272thx
Активность: 0.250.01
Статус: Участник
Destroyer of protectors

Создано: 12 декабря 2008 23:59
· Личное сообщение · #24

Раз уж на то пошло.
Подскажите плиз, как вывести форму моего приложения поверх всех окон ( имею в виду поверх игр ).

ЗЫ
Насколько я понимаю надо использовать DirectX or OpenGL.
Правда я в этом вообще не бум-бум.

Заранее спасибо.



Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 13 декабря 2008 00:20
· Личное сообщение · #25

>> но я столько мучался не получалось! поэтому решил спросить...
ну так надо было привести те варианты, которые ты пробовал! Которые у тебя не получились, может ты там мелочь забыл указать и это куда было бы лучше ;)

-----
My love is very cool girl.





Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 13 декабря 2008 00:27
· Личное сообщение · #26

MasterSoft поверх игр это уже связано с DirectX или OpenGL
а так можешь попробовать SetWindowPos(Handle, HWND_TOPMOST... или же на форме
FormStyle =fsStayOnTop

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 281.8 (наставник), 272thx
Активность: 0.250.01
Статус: Участник
Destroyer of protectors

Создано: 13 декабря 2008 00:30
· Личное сообщение · #27

coderess
А ты в DirectX сечёшь?
А то может поделишься ссылочкой на мануал




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 13 декабря 2008 22:55
· Личное сообщение · #28

Подфорум, конечно, программирования, но всё же никак не стоит лепить сюда вопросы, как бы мне в дельфе нарисовать своё окошко/менюшку/прочие рюшечки. По дельфям форумов и так должно хватать.
Закрыл глаза на температуру, дык напостили какой-то фигни. Закрыто.


 eXeL@B —› Программирование —› Help me in delphi
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати