Moin
das Applet funktioniert über die ADVLCD-UDF von chip.
Es zeigt die CPU Temperatur, Auslastung, Mhz, RAM Auslastung und Zeit an,
die CPU Infos bekomme ich durch die CoreTempInfo-udf ( weis nicht mehr von wem ich die hab, wurde von mir aber auch überarbeitet)
Core Temp muss dafür natürlich laufen und die dll muss vorhanden sein
Spoiler anzeigen
; Diese UDF benötigt die GetCoreTempInfo.dll
; sowie das installierte CoreTemp programm.
#include-once
[/autoit] [autoit][/autoit] [autoit];If Not FileExists(@ScriptDir & "\GetCoreTempInfo.dll") Or Not ProcessExists("Core Temp.exe") Then
; MsgBox(16,"Error", "Core Temp.exe läuft und/oder GetCoreTempInfo.dll existiert nicht", 20)
; Exit
;EndIf
Global $dll
Global $CORE_TEMP_SHARED_DATA
; #FUNKTION# ====================================================================================================================
; Name ..........: _CoreTemp_DLLOpen()
; Beschreibung ..: öffnet die coretemp.dll
; Syntax ........:
; Parameter .....: $path - Speicherort der dll, Standart ist Speicherort der UDF
; Rückgabewerte .: Erfolg - Handle
; Fehler - -1 und Msgbox Fehlermeldung
; Bemerkungen ...:
; Verwandt ......:
; ===============================================================================================================================
Func _CoreTemp_DLLOpen($path = "GetCoreTempInfo.dll")
If FileExists($path) Or ProcessExists("Core Temp.exe") Then
$dll = DllOpen($path)
$CORE_TEMP_SHARED_DATA = DllStructCreate("uint uiLoad[256];uint uiTjMax[128];uint uiCoreCnt;uint uiCPUCnt;float fTemp[256];float fVID;float fCPUSpeed;float fFSBSpeed;float fMultipier;char sCPUName[100];ubyte ucFahrenheit;ubyte ucDeltaToTjMax")
Return $dll
Else
MsgBox(16, "Error", "Core Temp.exe läuft und/oder GetCoreTempInfo.dll existiert nicht", 20)
Return (-1)
EndIf
EndFunc ;==>_CoreTemp_DLLOpen
; #FUNKTION# ====================================================================================================================
; Name ..........: _CoreTemp_CLLClose()
; Beschreibung ..: schließt die dll
; Syntax ........:
; Parameter .....:
; Rückgabewerte .: Erfolg
; Fehler
; Bemerkungen ...:
; Verwandt ......:
; ===============================================================================================================================
Func _CoreTemp_DllClose()
$CORE_TEMP_SHARED_DATA = 0
DllClose($dll)
EndFunc ;==>_CoreTemp_DllClose
; #FUNKTION# ====================================================================================================================
; Name ..........: _CoreTemp_GetData()
; Beschreibung ..: Aktualisiert alle Infos die abgefragt werden können
; Syntax ........:
; Parameter .....:
; Rückgabewerte .: Erfolg
; Fehler
; Bemerkungen ...: muss aufgerufen werden bevor Infos abgefragt werden
; Verwandt ......:
; ===============================================================================================================================
Func _CoreTemp_GetData()
$call = DllCall($dll, "int", "fnGetCoreTempInfoAlt", "ptr", DllStructGetPtr($CORE_TEMP_SHARED_DATA))
Return $call
EndFunc ;==>_CoreTemp_GetData
; #FUNKTION# ====================================================================================================================
; Name ..........: _CoreTemp_VID()
; Beschreibung ..: CPU Spannung
; Syntax ........:
; Parameter .....:
; Rückgabewerte .: Erfolg - gibt CPU Spannung mit 4 Nachkommastellen
; Fehler
; Bemerkungen ...:
; Verwandt ......:
; ===============================================================================================================================
Func _CoreTemp_VID()
$CPU_VID = DllStructGetData($CORE_TEMP_SHARED_DATA, "fVID")
Return Round($CPU_VID, 4)
EndFunc ;==>_CoreTemp_VID
; #FUNKTION# ====================================================================================================================
; Name ..........: _CoreTemp_Load()
; Beschreibung ..: gibt die CPU Auslastung wieder
; Syntax ........:
; Parameter .....: $return - 0 gibt Auslastung als Array aus, 1 als String mit | als Trennzeichen
; Rückgabewerte .: Erfolg - CPU Auslastung von jedem Kern
; Fehler
; Bemerkungen ...:
; Verwandt ......:
; ===============================================================================================================================
Func _CoreTemp_Load($return = 0)
Select
Case $return = 0
Local $CPU_Load[_CoreTemp_Cores()]
For $i = 1 To UBound($CPU_Load)
$CPU_Load[$i - 1] = DllStructGetData($CORE_TEMP_SHARED_DATA, "uiLoad", $i)
Next
Case $return = 1
$CPU_Load = ""
For $i = 1 To _CoreTemp_Cores()
$CPU_Load &= DllStructGetData($CORE_TEMP_SHARED_DATA, "uiLoad", $i) & "|"
Next
$CPU_Load = StringMid($CPU_Load, 1, StringLen($CPU_Load) - 1)
EndSelect
Return $CPU_Load
EndFunc ;==>_CoreTemp_Load
; #FUNKTION# ====================================================================================================================
; Name ..........: _CoreTemp_Name()
; Beschreibung ..: gibt den CPU Namen wieder
; Syntax ........:
; Parameter .....:
; Rückgabewerte .: Erfolg - CPU Name
; Fehler
; Bemerkungen ...:
; Verwandt ......:
; ===============================================================================================================================
Func _CoreTemp_Name()
$CPU_Name = DllStructGetData($CORE_TEMP_SHARED_DATA, "sCPUName")
Return $CPU_Name
EndFunc ;==>_CoreTemp_Name
; #FUNKTION# ====================================================================================================================
; Name ..........: _CoreTemp_SPEED()
; Beschreibung ..: CPU Frequenz in Mhz
; Syntax ........:
; Parameter .....:
; Rückgabewerte .: Erfolg - CPU Frequenz in Mhz
; Fehler
; Bemerkungen ...:
; Verwandt ......:
; ===============================================================================================================================
Func _CoreTemp_Speed()
$CPU_Speed = Round(DllStructGetData($CORE_TEMP_SHARED_DATA, "fCPUSpeed"), 0)
Return $CPU_Speed
EndFunc ;==>_CoreTemp_Speed
; #FUNKTION# ====================================================================================================================
; Name ..........: _CoreTemp_Cores()
; Beschreibung ..: Ließt wie viele physikalische Kerne vorhanden sind
; Syntax ........:
; Parameter .....:
; Rückgabewerte .: Erfolg - Anzahl Kerne
; Fehler
; Bemerkungen ...:
; Verwandt ......:
; ===============================================================================================================================
Func _CoreTemp_Cores()
$CPU_Cores = DllStructGetData($CORE_TEMP_SHARED_DATA, "uiCoreCnt")
Return $CPU_Cores
EndFunc ;==>_CoreTemp_Cores
; #FUNKTION# ====================================================================================================================
; Name ..........: _CoreTemp_FSB_Speed()
; Beschreibung ..: liest die FSB Frequenz
; Syntax ........:
; Parameter .....:
; Rückgabewerte .: Erfolg - FSB Frequenz in MHz
; Fehler
; Bemerkungen ...:
; Verwandt ......:
; ===============================================================================================================================
Func _CoreTemp_FSB_Speed()
$CPU_FSB_Speed = Round(DllStructGetData($CORE_TEMP_SHARED_DATA, "fFSBSpeed"), 0)
Return $CPU_FSB_Speed
EndFunc ;==>_CoreTemp_FSB_Speed
; #FUNKTION# ====================================================================================================================
; Name ..........: _CoreTemp_Multiplicator()
; Beschreibung ..: Liest den Multiplicator aus
; Syntax ........:
; Parameter .....:
; Rückgabewerte .: Erfolg - Multiplicator
; Fehler
; Bemerkungen ...:
; Verwandt ......:
; ===============================================================================================================================
Func _CoreTemp_Multiplicator()
$CPU_Multiplicator = DllStructGetData($CORE_TEMP_SHARED_DATA, "fMultipier")
Return $CPU_Multiplicator
EndFunc ;==>_CoreTemp_Multiplicator
; #FUNKTION# ====================================================================================================================
; Name ..........: _CoreTemp_Temp()
; Beschreibung ..: Liest die CPU Temperatur von jedem Kern
; Syntax ........:
; Parameter .....: $return - 0 gibt Temperatur als Array aus, 1 als String mit | als Trennzeichen
; Rückgabewerte .: Erfolg - Temperatur in °C
; Fehler
; Bemerkungen ...:
; Verwandt ......:
; ===============================================================================================================================
Func _CoreTemp_Temp($return = 0)
Select
Case $return = 0
Local $CPU_Temp[_CoreTemp_Cores()]
For $i = 1 To UBound($CPU_Temp)
$CPU_Temp[$i - 1] = DllStructGetData($CORE_TEMP_SHARED_DATA, "fTemp", $i)
Next
Case $return = 1
$CPU_Temp = ""
For $i = 1 To _CoreTemp_Cores()
$CPU_Temp &= DllStructGetData($CORE_TEMP_SHARED_DATA, "fTemp", $i) & "|"
Next
$CPU_Temp = StringMid($CPU_Temp, 1, StringLen($CPU_Temp) - 1)
EndSelect
Return $CPU_Temp
EndFunc ;==>_CoreTemp_Temp
; #FUNKTION# ====================================================================================================================
; Name ..........: _CoreTemp_Test()
; Beschreibung ..: erstellt eine Msgbox mit allen CPU Infos
; Syntax ........:
; Parameter .....:
; Rückgabewerte .: Erfolg - Msgbox mit allen CPU Infos
; Fehler
; Bemerkungen ...:
; Verwandt ......:
; ===============================================================================================================================
Func _CoreTemp_Test()
_CoreTemp_GetData()
MsgBox(0, "Core Temp", _
"CPU Name: " & _CoreTemp_Name() & @CRLF & _
"CPU Speed: " & _CoreTemp_Speed() & " MHz" & @CRLF & _
"CPU Cores: " & _CoreTemp_Cores() & @CRLF & _
"CPU FSB Speed: " & _CoreTemp_FSB_Speed() & " MHz" & @CRLF & _
"CPU Multiplicator: " & _CoreTemp_Multiplicator() & @CRLF & _
"CPU Temp: " & _CoreTemp_Temp(1) & " °C" & @CRLF & _
"CPU VID: " & _CoreTemp_VID() & " V" & @CRLF & _
"CPU Load: " & _CoreTemp_Load(1) & " %")
EndFunc ;==>_CoreTemp_Test
kommen wir zu meinen 2 Problemen
1. ich lade ein bmp Bild als Design auf den g15 LCD, jetzt möchte ich darauf die Infos schreiben.
Natürlich funktioniert das nicht wie ich das mir gedacht hatte,
einfach das Bild laden den Text schreiben und lcdupdate.
Das Problem ist das der Text in "weiß" geschrieben wird und das Bild an der stelle auch "weiß" ist.
Kann ich die Schrift Farbe nicht verstellen?
2. Wenn ich das Script so laufen lasse, wird das Applet nicht richtig erstellt.
Im LCD Manager wird es als ausgeführt angezeigt, jedoch läst es sich nicht am LCD auswählen.
Wenn ich jedoch die Coretemp Geschichte ausklammer (heißt dll init und die info funktionen) funktioniert es auf einmal.
Ich habe die Coretemp udf schon getestet (deswegen gibt es auch eine test funktion in der udf) sie funktioniert problemlos jedoch nicht in dem Script.
Es scheint so als ob das Script irgendwo zwischen _CoreTemp_DLLOpen() und _CoreTemp_Load() hängen bleibt.
Woran liegt das?
Spoiler anzeigen
;#include "\AtiAdl-UDF.au3"
#include "AVDLCD-UDF.au3"
#include "GetCoreTempInfo.au3"
#Include <String.au3>
OnAutoItExitRegister("_Exit")
[/autoit] [autoit][/autoit] [autoit]$appname = "Multi-LCD"
$pixmap = @scriptdir & "\G15 app.bmp"
$fontsize = 13
Global $loadxy[4] = [13,21,29,36]
Global $tempxy[4] = [11,19,27,35]
$lcdinit = LcdInitialize(@ScriptDir & "\advlcd.dll")
If @error Then
MsgBox(0, $appname, "LCDInitialize konnte nicht ausgeführt werden")
_Exit()
EndIf
Global $hApplet = LcdCreateApplet($appname, $LCD_DEVICE_MONO, 0, 1)
If @error Then
MsgBox(0, $appname, "LcdCreateApplet ist fehlgeschlagen")
_Exit()
EndIf
$pixmapdesign = LcdLoadPixmap($pixmap)
If @error Then
MsgBox(0, $appname, "LcdLoadPixmap ist fehlgeschlagen")
_Exit()
EndIf
$font = LcdLoadFont("Arial", $fontsize, $LCD_FONT_DEFAULT, "arial.ttf")
LcdSetFont($hApplet, $font)
#cs
$hcoretemp = _CoreTemp_DLLOpen()
If @error Then
MsgBox(0, $appname, "Coretemp.dll konnte nicht gestartet werden")
_Exit()
EndIf
#ce
LcdSetPriority($hApplet, $LCD_PRIORITY_NORMAL, True)
LcdClear($hApplet)
While 1
LcdWaitActivation($hApplet)
If LcdAppletOpened($hApplet) Then
Do
_CoreTemp_GetData()
$cputemp = _CoreTemp_Temp()
$cpuspeed = _CoreTemp_Speed()
$cpuload = _CoreTemp_Load()
#ce
;ati adl abfragen
$Ram = MemGetStats()
[/autoit] [autoit][/autoit] [autoit]LcdDrawPixmap($hApplet, $pixmapdesign)
#cs
For $i = 1 To _CoreTemp_Cores()
LcdDrawText($hApplet, $cpuload[$i-1] & " %", 3, $loadxy[$i-1])
LcdDrawText($hApplet, $cputemp[$i-1], 49, $tempxy[$i-1])
Next
LcdDrawText($hApplet, $cpuspeed, 22, 2)
#ce
;LcdDrawRect($hApplet, 78, 1, Round(28/100*$gpuload+78), 2, True)
;LcdDrawRect($hApplet, 78, 6, Round(28/100*$gpufan+78), 7, True)
;LcdDrawText($hApplet, $gputemp, 71, 36)
;LcdDrawText($hApplet, $gpuvolt, 71, 27)
LcdDrawText($hApplet, @HOUR & ":" & @MIN & ":" & @SEC, 115, 1)
[/autoit] [autoit][/autoit] [autoit]LcdDrawText($hApplet, $Ram[0], 118, 14)
[/autoit] [autoit][/autoit] [autoit];LcdDrawText($hApplet, $upload, 113, 24)
;LcdDrawText($hApplet, $download, 113, 33)
LcdUpdate($hApplet, False)
Sleep(500)
LcdClear($hApplet)
Until LcdAppletOpened($hApplet) = False
LcdClear($hApplet)
EndIf
WEnd
Func _Exit()
LcdClear($hApplet)
LcdDeleteApplet($hApplet)
LcdDeInitialize()
_CoreTemp_DllClose()
Exit
EndFunc
ich hoffe ihr könnt mir helfen
mfg bulli