![]() |
Aktuelle CPUFrequenz abfragen (SpeedStep)
Hallo,
ich möchte gerne die Aktuelle CPU Frequenz abfragen. Aber alle Demos die ich gefunden habe zeigen mir nur 4Ghz an obwohl die CPU ohne last auf 0.8Ghz läuft. Wie kann man die wirklich aktuelle Frequenz abfragen? Danke im Voraus |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Ich mache das so:
Delphi-Quellcode:
FUNCTION TimeStamp:Int64;
asm rdtsc {$IFDEF CPUX64} shl rdx,32 or rax,rdx {$ENDIF} end;
Delphi-Quellcode:
FUNCTION GetTimeStampFrequency:Int64;
var OldPriority:Word; Q0,Q1,Qf,Ts0,Ts1:Int64; Seconds:Extended; PaMask,SaMask,TaMask:NativeUInt; begin // Thread nur auf einer CPU ausführen GetProcessAffinityMask(GetCurrentProcess,PaMask,SaMask); if PaMask<>0 then begin TaMask:=1; while TaMask and PaMask=0 do TaMask:=TaMask shl 1; SetThreadAffinityMask(GetCurrentThread,TaMask); end; // Priorität des Threads hochsetzen OldPriority:=GetThreadPriority(GetCurrentThread); SetThreadPriority(GetCurrentThread,THREAD_PRIORITY_TIME_CRITICAL); // QPC- und TimeStamp-Ticks für 10 ms holen QueryPerformanceCounter(Q0); Ts0:=TimeStamp; Sleep(10); Ts1:=TimeStamp; QueryPerformanceCounter(Q1); // Anhand QPF die TimeStamp-Frequenz ermitteln QueryPerformanceFrequency(Qf); Seconds:=(Q1-Q0)/Qf; Result:=Trunc((Ts1-Ts0)/Seconds+0.5); // Ticks/s // Priorität des Threads auf alten Wert stellen und Thread für alle // CPUs freigeben SetThreadPriority(GetCurrentThread,OldPriority); if PaMask<>0 then SetThreadAffinityMask(GetCurrentThread,PaMask); end; |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Klappt leider nicht. Egal ob mit Last oder ohne. Die Werte sind schon etwas komig. :roll:
Abgefragt mit einem Timer alle 500ms. Getestet auf einem Laptop mit Intel Core2(Duo) P8600. Ohne Last. (0,8Ghz) 312738611 241239801 266993435 2393030897 2393232643 2393188605 2393225644 2393234530 Mit Last. (2,5Ghz) 137983889 2393447349 2393455115 2393582694 304749688 2393445973 122108721 183223288 90529087 2393630273 Gruß |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Es gibt nicht (mehr) die aktuelle CPU-Geschwindigkeit. Jeder Kern kann unterschiedlich getaktet sein.
Ebenfalls wird dein Programm bei einer Messung (wenn du ihn nicht auf einen kern bindest) wild zwischen den Kernen hin und her "geworfen" was die Ausführung betrifft. |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Keine Ahnung, ob das hilft, aber ich verwende in Win7 das Gadget CPU-Meter, das mir die Auslastung aller Kerne sowie den verwendeten RAM anzeigt. Ob die Anzeige dieses Gadgets korrekt ist, vermag ich nicht wirklich zu beurteilen. Zumindest stimmt die Gadget-Anzeige in etwa mit der Anzeige im Ressourcenmonitor überein.
Immerhin zeigt die Existenz dieses Gadgets, daß es irgendwie gehen muß :stupid: |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Eine ganz simple Variante ist, die Klasse Win32_Processor via WMI zu befragen (Class property CurrentClockSpeed). Aber wie bereits richtig gesagt wurde, gibt das nur den Takt eines Kerns an, der nicht notwendigerweise mit dem Takt der anderen Kerne übereinstimmen muss. Daher fällt das eher in die Kategorie "CPU-Frequenz auslesen für Arme" ;).
MfG Dalai |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Die WMI-Funktion ist ohne Refresher nicht nutzbar.
Delphi-Quellcode:
// Version: 1.8.3.0
// LIABILITY DISCLAIMER // THIS GENERATED CODE IS DISTRIBUTED "AS IS". NO WARRANTY OF ANY KIND IS EXPRESSED OR IMPLIED. // YOU USE IT AT YOUR OWN RISK. THE AUTHOR NOT WILL BE LIABLE FOR DATA LOSS, // DAMAGES AND LOSS OF PROFITS OR ANY OTHER KIND OF LOSS WHILE USING OR MISUSING THIS CODE. //---------------------------------------------------------------------------------------------------- program GetWMI_Info; {$APPTYPE CONSOLE} uses // SysUtils, ActiveX, ComObj, Variants; System.SysUtils, Winapi.ActiveX, System.Win.ComObj, System.Variants; const WbemUser =''; WbemPassword =''; WbemComputer ='localhost'; wbemFlagForwardOnly = $00000020; function VarToInt(const AVariant: Variant): INT64;// integer; begin Result := StrToIntDef(Trim(VarToStr(AVariant)), 0); end; procedure GetCIM_ProcessorInfo; var FSWbemLocator : OLEVariant; FWMIService : OLEVariant; FWbemObjectSet: OLEVariant; FWbemObject : OLEVariant; oEnum : IEnumvariant; iValue : LongWord; begin; FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator'); FWMIService := FSWbemLocator.ConnectServer(WbemComputer, 'root\CIMV2', WbemUser, WbemPassword); FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM CIM_Processor','WQL',wbemFlagForwardOnly); oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant; while oEnum.Next(1, FWbemObject, iValue) = 0 do begin Writeln(Format('AddressWidth %d',[VarToInt(FWbemObject.AddressWidth)]));// Uint16 Writeln(Format('Availability %d',[VarToInt(FWbemObject.Availability)]));// Uint16 Writeln(Format('Caption %s',[VarToStr(FWbemObject.Caption)]));// String Writeln(Format('ConfigManagerErrorCode %d',[VarToInt(FWbemObject.ConfigManagerErrorCode)]));// Uint32 Writeln(Format('ConfigManagerUserConfig %s',[VarToStr(FWbemObject.ConfigManagerUserConfig)]));// Boolean Writeln(Format('CreationClassName %s',[VarToStr(FWbemObject.CreationClassName)]));// String Writeln(Format('CurrentClockSpeed %d',[VarToInt(FWbemObject.CurrentClockSpeed)]));// Uint32 Writeln(Format('DataWidth %d',[VarToInt(FWbemObject.DataWidth)]));// Uint16 Writeln(Format('Description %s',[VarToStr(FWbemObject.Description)]));// String Writeln(Format('DeviceID %s',[VarToStr(FWbemObject.DeviceID)]));// String Writeln(Format('ErrorCleared %s',[VarToStr(FWbemObject.ErrorCleared)]));// Boolean Writeln(Format('ErrorDescription %s',[VarToStr(FWbemObject.ErrorDescription)]));// String Writeln(Format('Family %d',[VarToInt(FWbemObject.Family)]));// Uint16 Writeln(Format('InstallDate %s',[VarToStr(FWbemObject.InstallDate)]));// Datetime Writeln(Format('LastErrorCode %d',[VarToInt(FWbemObject.LastErrorCode)]));// Uint32 Writeln(Format('LoadPercentage %d',[VarToInt(FWbemObject.LoadPercentage)]));// Uint16 Writeln(Format('MaxClockSpeed %d',[VarToInt(FWbemObject.MaxClockSpeed)]));// Uint32 Writeln(Format('Name %s',[VarToStr(FWbemObject.Name)]));// String Writeln(Format('OtherFamilyDescription %s',[VarToStr(FWbemObject.OtherFamilyDescription)]));// String Writeln(Format('PNPDeviceID %s',[VarToStr(FWbemObject.PNPDeviceID)]));// String Writeln(Format('PowerManagementCapabilities %d',[VarToInt(FWbemObject.PowerManagementCapabilities)]));// Array of Uint16 Writeln(Format('PowerManagementSupported %s',[VarToStr(FWbemObject.PowerManagementSupported)]));// Boolean Writeln(Format('Role %s',[VarToStr(FWbemObject.Role)]));// String Writeln(Format('Status %s',[VarToStr(FWbemObject.Status)]));// String Writeln(Format('StatusInfo %d',[VarToInt(FWbemObject.StatusInfo)]));// Uint16 Writeln(Format('Stepping %s',[VarToStr(FWbemObject.Stepping)]));// String Writeln(Format('SystemCreationClassName %s',[VarToStr(FWbemObject.SystemCreationClassName)]));// String Writeln(Format('SystemName %s',[VarToStr(FWbemObject.SystemName)]));// String Writeln(Format('UniqueId %s',[VarToStr(FWbemObject.UniqueId)]));// String Writeln(Format('UpgradeMethod %d',[VarToInt(FWbemObject.UpgradeMethod)]));// Uint16 Writeln(''); FWbemObject:=Unassigned; end; end; begin try CoInitialize(nil); try GetCIM_ProcessorInfo; finally CoUninitialize; end; except on E:EOleException do Writeln(Format('EOleException %s %x', [E.Message,E.ErrorCode])); on E:Exception do Writeln(E.Classname, ':', E.Message); end; Writeln('Press Enter to exit'); Readln; end. |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Ich glaube ihr verwechselt die Auslastung, die pro Kern anders ist, mit der CPU Clockspeed. Diese Frequenz ist, wenn man es mal platt sagt, Global. Es ist nicht möglich einen Kern mit 1Ghz und einen anderen Kern mit 2Ghz laufen zu lassen.
Dieser Speed wird aus einer Grundfrequenz mit einem Multiplier festgelegt bzw. eingestellt. Es würd ja schon reichen wenn man die Grundfrequenz und den Multiplier wert lesen könnte. Dann einfach mal nehmen und schon hat man den aktuellen Takt. Aber leider find ich rein Garnichts wie und wo ich das auslesen könnte. Es muss aber gehen da z.b. das Programm CoreTemp genau diese werte anzeigt.
Code:
Quelle:
Multiplikator: Der endgültige Takt des Prozessors ergeben sich aus dem Produkt des BCLK und des Multiplikators. Also in Kurzform: BCLKxMulti=CPU-Takt. Da der Multiplikator bei den meisten CPUs nach oben hin gesperrt ist, führt nur eine Erhöhung des BCLK den gewünschten Effekt der Taktsteigerung herbei.
Bsp.: Jeder i7 hat einen BCLK 133MHz, der i7-920 hat den Multi 20 133MHz * 20 = 2667MHz ![]() Gruß EDIT: Danke @hathor, das zeigt mir wirklich die Aktuelle Frequenz an. Ist zwar nicht schnell, aber gut brauchbar. |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
@hathor,
ich habe gerade gemerkt, das CurrentClockSpeed nicht den TurboSpeed anzeigt. Er zeigt dann nur den MaxClockSpeed (4001) an. Hat eventuell jemand eine Idee wie ich das "richtig" angezeigt bekomme. Ich habe es auf 2 verschiedenen Rechner getestet. Danke im Voraus |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Liste der Anhänge anzeigen (Anzahl: 2)
Mit VBS ist das einfach:
Code:
Set objWMI = GetObject("winmgmts://./root\cimv2")
set objRefresher = CreateObject("WbemScripting.Swbemrefresher") Set objInterfaces = objRefresher.AddEnum(objWMI, "CIM_Processor").ObjectSet Dim strList, I Wscript.Echo "Click and Wait 10-15 sec ..." objRefresher.Refresh For each RefreshItem in objRefresher For each objInstance in RefreshItem.ObjectSet strList = strList & objInstance.Name _ & vbnewline & " CurrentClockSpeed: " & objInstance.CurrentClockSpeed _ & vbnewline & " MaxClockSpeed: " & objInstance.MaxClockSpeed Next Next strList = strList & vbnewline & "--------------------------------" For I = 1 to 10 objRefresher.Refresh For each RefreshItem in objRefresher For each objInstance in RefreshItem.ObjectSet strList = strList & vbnewline & " CurrentClockSpeed: " & objInstance.CurrentClockSpeed Next Next Wscript.Sleep 500 Next Wscript.Echo strList |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Zitat:
Hierzu kann man z.B. einen Benchmark laufen lassen und dessen Prozess via Taskmanager auf einen Kern festnageln. MfG Dalai |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Das zeigt auch nur die Grundtaktfrequenz des Prozessors. Turbo wären bei dem Prozessor 3,3.
Quelle: ![]() |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Liste der Anhänge anzeigen (Anzahl: 1)
Ich frage mich wo du das siehst? Es wird nur eine CPU (Prozessor #1) angezeigt. Was ja auch richtig ist. Es ist ja nur einer da.
Wie das bei AMD ist weiß ich nicht. |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Zitat:
MfG Dalai |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Aha, wusste ich nicht. Trotzdem laufen alle 4 mit der gleichen Frequenz. Egal ob ich was Zippe (Geht dann im Turbo auf 4,4) oder er im idle ist (0,8).
Wie gesagt, vielleicht ist es bei AMD anders. Habe leider keinen AMD hier. Trotzdem erklärt es nicht warum ich im Turbomode nicht die 4,4 angesagt bekomme, sondern nur 4,0. Gruß |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Zitat:
Möglich ist aber, dass das bei Intel CPUs anders aussieht und entweder nicht alle Modelle eine Taktung pro Kern kennen oder Intel das gar nicht macht; letzteres glaube ich aber nicht wirklich. Zitat:
MfG Dalai |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Zitat:
|
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Pfff, irren ist Menschlich. Sonst gäbe es keine Radiergummis :)
Was meinst du wie oft ich mich schon geirrt habe. :-D |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Zitat:
Zitat:
|
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Liste der Anhänge anzeigen (Anzahl: 1)
Da offenbar immer noch nicht geglaubt wird, dass die Kerne unterschiedlich takten können, mal ein Beweis dafür im Anhang. Um das Ergebnis zu erreichen, habe ich WinRAR auf einen Kern festgetackert und den integrierten Benchmark gestartet.
MfG Dalai |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Öhm, ich dachte ich hätte das eben gepostet... *grübel*. Also Gelesen habe ich das nun einmal. Also scheint es wohl so zu sein. Ich selber habs nicht hinbekommen. Ich hatte einen Kern unter voll last, aber irgendwie hat sich dann CPU-Z nicht mehr geupdated.
Interessanter wäre, wie ich das auslesen kann wenn die Clock über MaxClock geht. Gruß |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Liste der Anhänge anzeigen (Anzahl: 2)
Wer CORETEMP hat, kann das Programm im Anhang nutzen - es nutzt SharedMemory von CT.
|
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Ist hier was dabei was dir weiterhilft ?
![]() ![]() Rollo |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Werde ich mir heute im laufe des Tages ansehen und berichten.
Vielen dank an euch |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Liste der Anhänge anzeigen (Anzahl: 2)
Wer bis zu 24 Cores hat...
Delphi-Quellcode:
unit Unit1;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls, System.Win.Registry; type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; Timer1: TTimer; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; procedure RUN(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; const powrproflib = 'powrprof.dll'; 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; TPowerInfoArray = array[0..0] of PROCESSOR_POWER_INFORMATION; PPowerInfoArray = ^TPowerInfoArray; var PowerInfos: Pointer; PowerInfoArray: PPowerInfoArray absolute PowerInfos; HIGHEST, LOWEST : INTEGER; SysInfo: SYSTEM_INFO; implementation {$R *.dfm} procedure MM(s:string); begin Form1.Memo1.Lines.Add(s); end; Function GetProzessorName: String; Var Reg: TRegistry; Begin Result := 'Processor ?'; Reg := TRegistry.Create(KEY_READ); Try Reg.RootKey := HKEY_LOCAL_MACHINE; Reg.OpenKey('Hardware\Description\System\CentralProcessor\0', False); Result := Reg.ReadString('ProcessorNameString'); Finally Reg.free; End; End; function CallNtPowerInformation(InformationLevel: DWORD; InPutBuffer: Pointer; InputBufferSize: ULONG; OutPutBuffer: Pointer; OutPutBufferSize: ULONG): DWORD; stdcall; external powrproflib; procedure TForm1.Button1Click(Sender: TObject); begin Close; end; procedure TForm1.FormCreate(Sender: TObject); begin HIGHEST:= 0; LOWEST:= 10000; Label3.Caption:= GetProzessorName; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Memo1.clear; MM(''); RUN(Self); Label1.Caption:= 'HIGHEST FREQ: '+INTTOSTR(HIGHEST)+' MHz'; Label2.Caption:= 'LOWEST FREQ: '+INTTOSTR(LOWEST)+' MHz'; Button1.SetFocus; end; procedure TForm1.RUN(Sender: TObject); var size, ret: Cardinal; CURR,HIGH,LIMIT, i :Integer; begin // GetNativeSystemInfo(SysInfo); // Caption:= 'Cores: '+INTTOSTR(SysInfo.dwNumberOfProcessors); size := SizeOf(PROCESSOR_POWER_INFORMATION) * 24;//or SysInfo.dwNumberOfProcessors; GetMem(PowerInfos, size); ZeroMemory(PowerInfos, size); ret := CallNTPowerInformation(11, nil, 0, PowerInfos, size); if ret = ERROR_SUCCESS then begin PowerInfoArray := PowerInfos; for i := 0 to 23 do // 24 Cores - enough ? begin if i> PowerInfoArray^[i].Number then EXIT; Label6.Caption:= 'Idle: '+INTTOSTR(PowerInfoArray^[i].CurrentIdleState); CURR:= Round(PowerInfoArray^[i].CurrentMhz div 10)* 10; HIGH:= Round(PowerInfoArray^[i].MaxMhz div 10)* 10; LIMIT:= Round(PowerInfoArray^[i].MhzLimit div 10)*10; Label4.Caption:= 'MaxMhz: '+INTTOSTR(HIGH)+ ' MHz'; Label5.caption:= 'MhzLimit: '+INTTOSTR(LIMIT)+ ' MHz'; if CURR > HIGHEST then HIGHEST:= CURR; if CURR < LOWEST then LOWEST:= CURR; case PowerInfoArray^[i].Number of 0: MM(' CORE '+ IntToStr(i)+': ' + IntToStr(CURR)+' MHz'); // Core 0 1: MM(' CORE '+ IntToStr(i)+': ' + IntToStr(CURR)+' MHz'); // Core 1 2: MM(' CORE '+ IntToStr(i)+': ' + IntToStr(CURR)+' MHz'); // Core 2 3: MM(' CORE '+ IntToStr(i)+': ' + IntToStr(CURR)+' MHz'); // Core 3 4: MM(' CORE '+ IntToStr(i)+': ' + IntToStr(CURR)+' MHz'); // Core 4 5: MM(' CORE '+ IntToStr(i)+': ' + IntToStr(CURR)+' MHz'); // Core 5 6: MM(' CORE '+ IntToStr(i)+': ' + IntToStr(CURR)+' MHz'); // Core 6 7: MM(' CORE '+ IntToStr(i)+': ' + IntToStr(CURR)+' MHz'); // Core 7 8: MM(' CORE '+ IntToStr(i)+': ' + IntToStr(CURR)+' MHz'); // Core 8 9: MM(' CORE '+ IntToStr(i)+': ' + IntToStr(CURR)+' MHz'); // Core 9 10: MM(' CORE '+ IntToStr(i)+': ' + IntToStr(CURR)+' MHz'); // Core 10 11: MM(' CORE '+ IntToStr(i)+': ' + IntToStr(CURR)+' MHz'); // Core 11 // extent to 23 end; end; end else FreeMem(PowerInfos, size); end; end. |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Hi,
habe nun alles mal getestet. Ist alles nicht brauchbar für meine Zwecke. Am besten ist immer noch Post #7 von hathor. Das einzige was nicht klappt ist das er den Turbo wert anzeigt. Ansonsten ist es sehr gut. An diese stelle ein Danke schön.... Gruß |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Deine CPU INTEL P8600 hat KEINEN Turbo-Modus:
Intel® Turbo-Boost-Technik: No aber: Erweiterte Intel SpeedStep® Technologie: Yes ![]() Das Programm in #25 sollte das richtig anzeigen. |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Uff, nun hab ich es gefunden. Da hast du mich gerade aber ans grübeln gebracht.
Du beziehst dich auf Post #3. Das das Laptop keinen Turbo hat weiß ich. Es ging darum das ich den Post #2 getestet habe. Da war noch nix mit Turbomode. Ansonsten teste ich natürlich auf CPUs die Turbo haben. Sonst würde es wenig sinn machen, gell. ;) Deinen Post#25 werde ich nachher mal probieren. Gruß |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Geht leider nicht. Bleibt bei 4Ghz stehen. Da müsste aber 4,4 stehen. Ich lasse weiterhin das von Post #7 laufen. Trotzdem nochmal danke :thumb:
|
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Liste der Anhänge anzeigen (Anzahl: 1)
Woher kommt der Wert 4,4 GHz ?
Zitat: Dank Dynamic Acceleration (später Turbo Modus genannt), kann sich ein Kern um eine Stufe übertakten, wenn der zweite im Idle Modus (Leerlauf) ist. Das integrierte Enhanced Speedstep kann die Taktfrequenz des Prozessors dynamisch an die Leistungsanforderungen anpassen. Dadurch läuft die CPU ohne Last nur mit 1200 MHz. Die P8600 ist erstaunlich langsam: |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Zitat:
![]() CoreTemp habe ich schon Jahrelang mitlaufen. Man möchte ja wissen was die Kiste so macht. :) Bevor du fragst... Das IntelTool zeigte es mir auch an. Ohne last habe ich 0,8 und dann halt die 4,4 |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Es geht nicht mehr um P8600 ?
...Intel-Core-i7-4790K-Processor-8M-Cache-up-to-4_40-GHz |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Nein, das ist mein Laptop. Damit habe ich abends schnell den Code von Post #2 getestet. Ich wollte sehen ob das überhaupt läuft. Habe ich aber eben schon gepostet.
Zumal der Laptop mir nie 4,0Ghz anzeigen würde. Außer er wäre kaputt :-D |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Liste der Anhänge anzeigen (Anzahl: 2)
"Ich habe da mal was vorbereitet..."
|
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Gruß |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Zitat:
Na, also - geht doch! Alles klar! |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Achso, den CPUNamen habe ich nicht weg gemacht. Der zeigt da nix an.
|
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Liste der Anhänge anzeigen (Anzahl: 1)
Zeigt der folgende Code etwas an?
Delphi-Quellcode:
Im Anhang geändertes Programm:
Function GetProzessorName: String;
Var Reg: TRegistry; Begin Result := 'Processor ?'; Reg := TRegistry.Create(KEY_READ); Try Reg.RootKey := HKEY_LOCAL_MACHINE; Reg.OpenKey('Hardware\Description\System\CentralProcessor\0', False); Result := Reg.ReadString('ProcessorNameString'); Finally Reg.free; End; End; Wenn CT keinen CPU-Namen liefert, wird aus der Registry gelesen. |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Zitat:
Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz |
AW: Aktuelle CPUFrequenz abfragen (SpeedStep)
Liste der Anhänge anzeigen (Anzahl: 2)
Manche CPU-Namen sind zu lang, deshalb Form geändert.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz