An der Prozessorgeschwindigkeit musst Du noch arbeiten - das sind nur Hausnummern.
Warum nimmst Du nicht:
http://www.delphipraxis.net/internal...=tcpufrequency
Delphi-Quellcode:
type
PROCESSOR_POWER_INFORMATION = packed record
Number: Cardinal;
MaxMhz: Cardinal;
CurrentMhz: Cardinal;
MhzLimit: Cardinal;
MaxIdleState: Cardinal;
CurrentIdleState: Cardinal;
end;
PPROCESSOR_POWER_INFORMATION = ^PROCESSOR_POWER_INFORMATION;
TCPUFrequency = packed record
CurrentMhz: Cardinal;
MaxMhz: Cardinal;
MhzLimit: Cardinal;
end;
var
CPUFrequency: TCPUFrequency;
function GetCPUFrequency(var CPUFrequency: TCPUFrequency): DWORD;
var
ppi: PROCESSOR_POWER_INFORMATION;
err: DWORD;
begin
ZeroMemory(@ppi, sizeof(PROCESSOR_POWER_INFORMATION));
err := CallNTPowerInformation(11, nil, 0, @ppi, sizeof(PROCESSOR_POWER_INFORMATION));
if err = 0 then
begin
CPUFrequency.CurrentMhz := ppi.CurrentMhz;
CPUFrequency.MaxMhz := ppi.MaxMhz;
CPUFrequency.MhzLimit := ppi.MhzLimit;
end;
result := err;
end;
//-------------------------------------
function ReadFREQ : Boolean;
var
err: DWORD;
begin
ZeroMemory(@CPUFrequency, sizeof(TCPUFrequency));
err := GetCPUFrequency(CPUFrequency);
if err = 0 then result:= true else result:= false;
end;