#ADR_REG = $295 ;Это
адреса регистров системной платы, с помощью которых можно узнать
температуру #DATA_REG = $296
*HModule=LoadLibraryM(?DLL)
;Загрузка динамической библиотеки из тела
исполняемого файла *Inp32_address=GetProcAddressM(*HModule,
"Inp32") ;Узнаём адрес функции "Inp32"
DLLки *Out32_address=GetProcAddressM(*HModule, "Out32") ;Узнаём адрес функции "Out32"
DLLки
Procedure Termo(z) ;Эта
процедура работает в параллельном потоке Shared *Inp32_address,
*Out32_address
Repeat ;Начало
"безконечного" цикла Repeat ForEver
CallFunctionFast(*Out32_address, #ADR_REG, $2B) ;Получает текущую температуру процессора
x=CallFunctionFast(*Inp32_address, #DATA_REG)
SetGadgetItemText(0,0,StrU(x, #PB_Byte)+" °C",1) ;отображаем её в таблице
CallFunctionFast(*Out32_address, #ADR_REG, $29) ;Получает текущую температуру системной
платы x=CallFunctionFast(*Inp32_address,
#DATA_REG) SetGadgetItemText(0,1,StrU(x, #PB_Byte)+"
°C",1) ;отображаем её в
таблице SetGadgetText(3,
Str(CpuUsage())+" %" ) ;Получаем и отображаем
текущую загрузку процессора Delay(1000)
;Пауза, равная 1 секунде.
ForEver EndProcedure
#flag=
#PB_Window_MinimizeGadget|#PB_Window_Invisible|#PB_Window_ScreenCentered OpenWindow(0,0,0,274,100,"TermoControl",#flag)
ListIconGadget(0,2,2,270,70,"Имя",120,#PB_ListIcon_GridLines) ;Таблица
SetGadgetFont(0,LoadFont(0,"MS Sans Serif",10) ) ;Шрифт используемый в таблице
AddGadgetColumn(0, 1, "Температура", 140) ;Добавление колонки в таблицу
AddGadgetItem(0, 0, "Процессор") ;Добавление
строк в таблицу AddGadgetItem(0, 1,
"Мат. плата")
TextGadget(2,10, 80,140,16,"Процессор
загружен на ") TextGadget(3,150, 80,50,16,"") ;Здесь будет отображаться текущая загрузка
процессора CreateThread(@Termo(),
0) ;Запуск кода процедуры "Termo" в
параллельном потоке HideWindow(0,0)
;Отображение окна
Repeat ;Главный цикл программы
Event=WaitWindowEvent()
Until Event=#PB_Event_CloseWindow
FreeLibraryM(*HModule) ;При завершении работы
проги, выгружаем DLLку из памяти End
DataSection ;Добавление файла inpout32.dll
в секцию кода, исполняемого файла DLL:
IncludeBinary
"inpout32.dll" EndDataSection |