Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Temperatura karty graficznej / zuzycie procesora


Rekomendowane odpowiedzi

Opublikowano

Wie ktos jaki jest sposób na odczytanie temperatury karty graficznej lub zuzycia procesora w autoit ? szukalem w helpie na 100% nic nie ma. Szukalem dodatkowych UDF ale nie znalazlem nic :( Kiedys cos takiego widzialem tylko nie moge tego znalesc teraz..

Prosze o pomoc.

Zbieram + : D

Opublikowano

Bo może nie szukałeś?

 

Tutaj wygrzebałem coś na CPU:

 

Local $TotalCpu, $StartUser, $StartIdle, $StartKernel, $ProcStartKern, $ProcStartUser, $bFirstRun = True

Func CPUStats()
   Local $tProcess, $tSystemt, $hScripthandle = _WinAPI_GetCurrentProcess()
   Local $IDLETIME = DllStructCreate($tagFILETIME), $KERNELTIME = DllStructCreate($tagFILETIME), $USERTIME = DllStructCreate($tagFILETIME)
   Local $PCreationTime = DllStructCreate($tagFILETIME), $PExitTime = DllStructCreate($tagFILETIME), $PKernelTime = DllStructCreate($tagFILETIME), $PUserTime = DllStructCreate($tagFILETIME)
   DllCall('Kernel32.dll', "int", "GetSystemTimes", "ptr", DllStructGetPtr($IDLETIME), "ptr", DllStructGetPtr($KERNELTIME), "ptr", DllStructGetPtr($USERTIME))
   DllCall('Kernel32.dll', "int", "GetProcessTimes", "hwnd", $hScripthandle, "ptr", DllStructGetPtr($PCreationTime), "ptr", DllStructGetPtr($PExitTime), "ptr", DllStructGetPtr($PKernelTime), "ptr", DllStructGetPtr($PUserTime))
   If Not $bFirstRun Then
    $tSystem = (DllStructGetData($KERNELTIME, 1) - $StartKernel) + (DllStructGetData($USERTIME, 1) - $StartUser)
    $tSystemt = (($tSystem - (DllStructGetData($IDLETIME, 1) - $StartIdle)) * (100/$tSystem))
   EndIf
   $ProcStartKern = DllStructGetData($PKernelTime, 1)
   $ProcStartUser = DllStructGetData($PUserTime, 1)
   $StartIdle = DllStructGetData($IDLETIME, 1)
   $StartKernel = DllStructGetData($KERNELTIME, 1)
   $StartUser = DllStructGetData($USERTIME, 1)
   If $bFirstRun Then $bFirstRun = False
   $TotalCpu = $tSystemt
EndFunc   ;==>_CPUStats

Opublikowano

To raczej nie umiesz..

 

Trochę podrasowana funkcja i śmiga..

Nie wywołuj jej za często, bo będzie świrować..

 

 

#include <WindowsConstants.au3>
#include <WinAPI.au3>
$Form1 = GUICreate("", 197, 46, 192, 124)
$Progress1 = GUICtrlCreateProgress(12, 12, 174, 17)
GUISetState(@SW_SHOW)

Local $TotalCpu, $StartUser, $StartIdle, $StartKernel, $ProcStartKern, $ProcStartUser, $bFirstRun = True

While 1
If GUIGetMsg() = -3 Then Exit
GUICtrlSetData($Progress1, Round(CPUStats()))
Sleep(1000)
WEnd


Func CPUStats()
 Local $tProcess, $tSystemt, $hScripthandle = _WinAPI_GetCurrentProcess()
 Local $IDLETIME = DllStructCreate($tagFILETIME), $KERNELTIME = DllStructCreate($tagFILETIME), $USERTIME = DllStructCreate($tagFILETIME)
 Local $PCreationTime = DllStructCreate($tagFILETIME), $PExitTime = DllStructCreate($tagFILETIME), $PKernelTime = DllStructCreate($tagFILETIME), $PUserTime = DllStructCreate($tagFILETIME)
 DllCall('Kernel32.dll', "int", "GetSystemTimes", "ptr", DllStructGetPtr($IDLETIME), "ptr", DllStructGetPtr($KERNELTIME), "ptr", DllStructGetPtr($USERTIME))
 DllCall('Kernel32.dll', "int", "GetProcessTimes", "hwnd", $hScripthandle, "ptr", DllStructGetPtr($PCreationTime), "ptr", DllStructGetPtr($PExitTime), "ptr", DllStructGetPtr($PKernelTime), "ptr", DllStructGetPtr($PUserTime))
 If Not $bFirstRun Then
		 $tSystem = (DllStructGetData($KERNELTIME, 1) - $StartKernel) + (DllStructGetData($USERTIME, 1) - $StartUser)
		 $tSystemt = (($tSystem - (DllStructGetData($IDLETIME, 1) - $StartIdle)) * (100/$tSystem))
 EndIf
 $ProcStartKern = DllStructGetData($PKernelTime, 1)
 $ProcStartUser = DllStructGetData($PUserTime, 1)
 $StartIdle = DllStructGetData($IDLETIME, 1)
 $StartKernel = DllStructGetData($KERNELTIME, 1)
 $StartUser = DllStructGetData($USERTIME, 1)
 If $bFirstRun Then $bFirstRun = False
 Return $tSystemt
EndFunc ;==>_CPUStats

 

 

Możesz sobie okroić trochę tą funkcję, bo zwraca więcej niż tylko zużycie procka ;D

Opublikowano

Dobra niby teraz wszystko działa lecz nie wiem czemu po włączeniu tego skryptu zuzycie proca do 60% podskakuje o_O

 

A co jeszcze zwraca ;> ?

Zbieram + : D

Opublikowano

żeby skrypt się wykonał obciąża procesor, logiczne... zazwyczaj trwa to milisekundy ale jest rejestrowane jako wysoka wartość na daną sekundę

 

P.S. nie każdy skrypt aż tak bardzo obciąża procesor, aczkolwiek sprawdzanie procesora jest jednym z najbardziej obciążających... <lol>

Oddajcie minusy! :(

Opublikowano

W vb.net, takie skrypty to nawet 1% nie biorą ^_^

 

japierdziele, w autoit pętla powtarzana 30 razy na sekundę nie bierze 0.1%

 

aczkolwiek właśnie SPRAWDZANIE POZIOMU AKTYWNOSCI PROCESORA zabiera na każdej platformie niesamowicie dużo, gdyz metoda jaka to jest wykonywane nakłada na procesor dużo dodatkowych zadań...

Oddajcie minusy! :(

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...