Deutsch
Forum

Prozessorinformationen Ermitteln, Max. Mhz, Zahl Kerne, Auslastung in % (CallNtPowerInformation)

 

Julian
Schmidt
Hallo,
ich versuche gerade Informationen des Prozessors zu ermitteln (CallNtPowerInformation, Processor_Power_Information), um daraus dann die CPU Auslastung in Prozent zu berechnen.
Wie man die aktuelle CPU Geschwindigkeit in Mhz berechnet habe ich schon einen Posting von hier hier entnommen. [...] 
Proc sys.getcpuspeed

    Declare Callmem#
    Dim Callmem#,24
    External("powrprof.dll","CallNtPowerInformation",11,0,0,Callmem#,24)
    Var mhz&=Long(Callmem#,8)
    Dispose Callmem#
    return mhz&

EndProc

Print "Speed: "  + Str$(sys.getcpuspeed()) +" Mhz"
WaitInput

Nun möchte ich noch die Max. Mhz-Zahl des Prozessors und die Anzahl der Kerne ermitteln.
Siehe Link[...] 
Das sollte über einen ähnlichen Quelltext funktionieren
Nur was muss ich am Quelltext verändern um statt "CurrentMhz", "MaxMhz"(, "Number") zu erhalten?
Was hat es mit der Bereichsvariable Callmem# auf sich? Warum hat sie den Wert 24?
Warum ist genau Long(Callmem#,8) die CPU Geschwindigkeit in Mhz? Welche Werte (, statt 8, ) haben andere Funktionen ("Number",etc.)

LG

Julian57
 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
30.06.2011  
 



Inwiefern hilft Dir die Erklärung zu CallNtPowerInformation (  [...]  ) nicht?
 
30.06.2011  
 




Julian
Schmidt
Ich weiß nicht wie ich die Funktion über XProfan aufrufe.
Bzw. wie der Aufruf (siehe Quelltext oben) funktioniert.
Und welche Werte ich ändern muss um eine andere Funktion zurückzugeben

Ich vermute das ich den Wert 8 aus "Var mhz&=Long(Callmem#,8)" ändern muss um dies zu tun.
Nur weiß ich nicht in welchen Wert ich diesen ändern muss.
Auf der Seite finde ich leider keine Tabelle oder so :p
 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
30.06.2011  
 




Jörg
Sellmeyer
Geh doch einfach mal die 24 durch. Wichtig ist, bei Null anfangen! Wahrscheinlich reichen Viererschritte:
WhileLoop 0,23,4

    print Long(Callmem#,&Loop)

Wend


Wenn dabei dein Wert ist, weißt Du es.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
30.06.2011  
 




Julian
Schmidt
Hallo,
@ Jörg
Das mit dem Zurückgeben der Werte, und dem Vergleichen ist ein klasse Idee

@All
Nur ein Problem. Wie ermittle ich die Maximale Mhz. Zahl meines Prozessors?
Ich habe mein System auf Volllast gebracht und über CurrentMhz dann die Mhz ermittelt. Nur war sie gleich mit der Zahl aus dem Leerlauf.
Ist die CPU Auslastung nicht von aktuellen Mhz der Prozessors abhängig?
Wenn ja, wo von ist sie abhängig, wie ermittelt man diese korrekt?

Zu der Funktion "Number". Es kann der Wert 16 oder 20 sein. Könnte jemande mal den Quelltext durchlaufen lassen und überprüfen ob ein Wert von der Anzahl seiner Prozessorkerne abweicht oder zustimmt. (Und seine Ergebnisse hier posten)
Proc sys.getcpuspeed

    Declare Callmem#
    Dim Callmem#,24
    External("powrprof.dll","CallNtPowerInformation",11,0,0,Callmem#,24)
    Var mhz&=Long(Callmem#,8)

    WhileLoop 0,24,1'Zeitweilig

        print Str$(&loop) + " = " + Str$(Long(Callmem#,&Loop))

    Endwhile

    Dispose Callmem#
    return mhz&

EndProc

sys.getcpuspeed
'Print "Speed: "  + Str$(sys.getcpuspeed()) +" Mhz"
WaitInput
'16 oder 20 = Number of Processors

LG

Julian57
 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
30.06.2011  
 




Julian
Schmidt
Hat den keiner eine Idee? Oder seit ihr nur zu sehr mit anderen Dingen beschäftigt?
 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
03.07.2011  
 



Mein Problem z.B.: Hab zu viele Ideen !

Wonach willst die API befragen?
 
03.07.2011  
 



Die API ist oft weniger hilfreich dazu als WMI:  [...] 

Hiermit echt hilfreich:  [...] 
 
03.07.2011  
 




Julian
Schmidt
iF (03.07.11)
Wonach willst die API befragen?


Nach der CPU Auslastung in Prozent,der Anzahl der Prozessorkerne, Max. Mhz. des Prozessors ^^ , und allem was sich über den Prozessor noch ermitteln lässt xD
 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
03.07.2011  
 



Vlt. solltest mal bei a anfangen und Dich dann zu b vorkämpfen -

eine gimmyallwhaticaneat-Api braucht viel Pflege. ^^
 
03.07.2011  
 




Julian
Schmidt
Wo soll ich bei a anfangen und mich bis b vorkämpfen?
 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
03.07.2011  
 



Versuche der API halt erstmal 1 Wert zu entlocken und dann Stück für Stück.

Auf der MSDN-Seite steht ja genau was die API alles zurückliefern kann.
 
04.07.2011  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

33.243 Betrachtungen

Unbenanntvor 0 min.
RudiB.13.04.2020
p.specht06.12.2018
H.Brill22.11.2015
iF02.06.2015
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie