Habe mich mal an der aktuellen
dll versucht. Wenn ich das richtig verstanden habe, benötigt man nicht mehr das starten der CoreTemp.exe
Ich komme zur Zeit nicht weiter, beim Aufruf von
if GetCoreInfo(NewCoreTempInfo)...
bekomme ich false zurück. Anscheinend ist meine Übergabe der Daten fehlerhaft...
Jemand eine Idee ?
Hier der Link zur C++ Info:
Core Temp mit Dll
Delphi-Quellcode:
unit CoreTempUnit;
interface
uses
Windows;
type
TCTInfo =
record
uiLoad :
array [0..255]
of Cardinal;
//256 = 1024 bytes
uiTjMax :
array [0..127]
of Cardinal;
//128 = 512 bytes
uiCoreCnt :Cardinal;
// 4 bytes
uiCPUCnt :Cardinal;
// 4 bytes
fTemp :
array [0..255]
of single;
//256 * 4 bytes = 1024 bytes
fVID : single;
//real 4 bytes
fCPUSpeed : single;
//real 4 bytes
fFSBSpeed : single;
//real 4 bytes
fMultiplier : single;
//real 4 bytes
sCPUName :
array [0..99]
of Char;
//String[100]; = 100 bytes
ucFahrenheit : Boolean;
// 1 byte
ucDeltaToTjMax: Boolean;
// 1 byte
end;
// 2686 bytes
PCTInfo = ^TCTInfo;
TFNGetCoreInfo =
function(Data: PCTInfo):boolean;
stdcall;
function LoadCoreTempDLL:Boolean;
function UnloadCoreTempDLL:Boolean;
var
NewCoreTempInfo : PCTInfo;
GetCoreInfo : TFNGetCoreInfo =
nil;
CoreLib : HMODULE;
implementation
function LoadCoreTempDLL:Boolean;
begin
result := false;
Corelib := LoadLibrary('
GetCoreTempInfo.dll');
if Corelib <> 0
then
begin
@GetCoreInfo := GetProcAddress(Corelib, '
fnGetCoreTempInfoAlt');
result := true;
end;
end;
function UnloadCoreTempDLL:Boolean;
begin
if CoreLib <> 0
then
begin
FreeLibrary(CoreLib);
result := True;
end else
result := False;
end;
Gruß, bluescreen25
...und ich dachte, Delphi ist ein Programmgenerator mit nur einem Button......tzzz