- Offizieller Beitrag
Hallo
Dieses Tool ist für alle nVidia Grafikkarten.
Dieses Tool überprüft die Temperatur von der Grafikkarte. Wenn sie zu hoch wird, färbt sich die GUI erst gelb, und wenn es dann kritisch wird, wird die GUI rot und der Lüfter gibt vollgas (100%)
Damit die Geschwindigkeit des Lüfters regulierbar ist, muss nVidia nTune runtergeladen werden (https://autoit.de/www.nvidia.de)
Die Temperaturauslesung funktioniert schon mit dem ganz gewöhnlichen nVidia Treiber.
Spoiler anzeigen
;By GtaSpider - Oct, 2008
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
Opt("GuiOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]Global $iHot = 75; If temperature becomes more than 75, the GUI going to be yellow
Global $iTooHot = 85 ;If temperature becomes more than 85, graphiccard will be cool down
Global $iTimeToCoolDown = 10 ;10 Seconds cooldown
Global $iOldTemp = 0
Global $hNvCplDLL, $hnVsublibDLL
;PathDeclare
Global $nvcpldll = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\NVIDIA Corporation\Global\MediaCenterTray\NvCpl.dll", "FullPath")
Global $nvsulibdll = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\NVIDIA Corporation\nTune", "NVSUProfilePath")
$nvsulibdll = StringLeft($nvsulibdll, StringInStr($nvsulibdll, "\", -1, -1)) & "nvsulib.dll"
;If not exist..
If Not FileExists($nvcpldll) Then Exit MsgBox(16, "", $nvcpldll & " doesn't exists")
If Not FileExists($nvsulibdll) Then
MsgBox(48, "", $nvsulibdll & " doesn't exists!" & @CRLF & "The speed is not regulareable!" & @CRLF & "Download nTune on http://www.nvidia.com")
$nvsulibdll = False
EndIf
;DLLs
Global $hNvCplDLL = DllOpen("Nvcpl.dll")
If $nvsulibdll Then Global $hnVsublibDLL = DllOpen("c:\programme\nvidia corporation\ntune\nvsulib.dll")
If $nvsulibdll Then DllCall($hnVsublibDLL, "none", "RestoreGpuCoolerSettingsDll", "int", False);Set fan to automatic
;GUI
GUICreate("", 200, 20, -1, -1, $WS_POPUP, $WS_EX_TOOLWINDOW + $WS_EX_TOPMOST)
GUISetOnEvent($GUI_EVENT_CLOSE, "_exit");If ESC pushed exit
GUISetBkColor(0x00ff00)
$hLab = GUICtrlCreateLabel("", 0, 3, 200, 20, 1, $GUI_WS_EX_PARENTDRAG);Dragable
GUICtrlSetTip(-1, "Drag me!")
GUICtrlSetBkColor(-1, -2)
GUISetState()
[/autoit] [autoit][/autoit] [autoit]While 1
$iTemp = DllCall($hNvCplDLL, "int:cdecl", "NvCplGetThermalSettings", "int", 0, "long*", '', "long*", "", "long*", "")
$iTemp = Number($iTemp[2])
If $iTemp <> $iOldTemp Then
GUICtrlSetData($hLab, $iTemp & " °C")
If $iTemp >= $iTooHot Then
ConsoleWrite("!Too Hot, " & $iTemp & " °C" & @CRLF)
GUISetBkColor(0xff0000)
_CoolDown()
ElseIf $iTemp >= $iHot Then
ConsoleWrite("-Hot, " & $iTemp & " °C" & @CRLF)
GUISetBkColor(0xffff00)
Else
ConsoleWrite("+Normal, "&$iTemp&" °C" & @CRLF)
GUISetBkColor(0x00ff00)
EndIf
$iOldTemp = $iTemp
EndIf
Sleep(1000)
WEnd
Func _CoolDown()
If Not $nvsulibdll Then Return ConsoleWrite("!WARNING: Too hot but could not regular the temperature" & @CRLF)
$aRetDll = DllCall($hnVsublibDLL, "none", "SetGpuCoolerLevelDll", "int", 0, "int", 100);Set fan to 100%
Sleep($iTimeToCoolDown * 1000)
$aRetDll = DllCall($hnVsublibDLL, "none", "RestoreGpuCoolerSettingsDll", "int", False);Set fan to automatic
EndFunc ;==>_CoolDown
Func _exit()
Exit
EndFunc ;==>_exit
Func OnAutoItExit()
DllClose($hnVsublibDLL)
DllClose($hNvCplDLL)
EndFunc ;==>OnAutoItExit
Hoffe es kann jemand gebrauchen
Achso, bevor ich es vergesse: Die GUI lässt sich per MausDrag einfach verschieben.
Mfg Spider
Edit: HotFix