Italia
Foro

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

 

Julian
Schmidt
Ciao,
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 circa 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 il valore 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 circa 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 I valore 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
Ciao,
@ 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 circa 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 circa 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 per Stück.

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




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

33.127 Views

Untitledvor 0 min.
RudiB.13.04.2020
p.specht06.12.2018
H.Brill22.11.2015
iF02.06.2015
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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