Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

CPU - Last auslesen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
pzktupel



Anmeldungsdatum: 07.07.2020
Beiträge: 43

BeitragVerfasst am: 04.03.2021, 12:21    Titel: CPU - Last auslesen Antworten mit Zitat

Hallo, ich möchte gerne mal eine Möglichkeit haben, um die aktuelle CPU-Last aus einem Basicprogramm herraus zu verwerten. Der Grund ist, das es ein Signal geben soll, wenn diese Last weit unter 100% ist, d.h. das Programm steht.

Mit "WMIC CPU GET LoadPercentage" gibt er mir zwar in der CMD-Box einen Wert aus, aber ich konnte es noch nicht aus Basic herraus einbinden.

Geht das irgendwie ?

Danke.
_________________
Zum Primzahl k-Tupel Thread
https://matheplanet.de/matheplanet/nuke/html/viewtopic.php?topic=232720&start=0
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4380
Wohnort: ~/

BeitragVerfasst am: 04.03.2021, 13:37    Titel: Antworten mit Zitat

Das ist jetzt ziemlich quick&dirty, weil ich mir über das Rückgabeformat keine Gedanken gemacht habe, sondern nur das auswerte, was vermutlich das richtige ist:

Code:
dim f as integer = freefile, wert as string
open pipe "WMIC CPU GET LoadPercentage" for input as 1
line input #1, wert
line input #1, wert
print wert
close #f

_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
pzktupel



Anmeldungsdatum: 07.07.2020
Beiträge: 43

BeitragVerfasst am: 04.03.2021, 13:51    Titel: Antworten mit Zitat

Junge, Du bist der Beste ! lächeln
Danke, das reicht allemale !
_________________
Zum Primzahl k-Tupel Thread
https://matheplanet.de/matheplanet/nuke/html/viewtopic.php?topic=232720&start=0
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
UEZ



Anmeldungsdatum: 24.06.2016
Beiträge: 126
Wohnort: Opel Stadt

BeitragVerfasst am: 04.03.2021, 14:20    Titel: Antworten mit Zitat

Du kannst auch die WinAPI anzapfen, um die CPU Last auszulesen:

Code:
'Code by UEZ build 2021-03-04 beta
#Include "windows.bi"

Function _WinAPI_GetCPUCount() As DWORD
   Dim As SYSTEM_INFO si
   GetSystemInfo(@si)
   Return si.dwNumberOfProcessors
End Function

Dim As Double t = Timer
Dim As Integer iPosCursor = 2, pid = GetCurrentProcessId() 'pid #ändern!!!
Dim As DWORD ekt = 0, eut = 0, iCPUs = _WinAPI_GetCPUCount()
Dim As Any Ptr hProcHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
Dim As FILETIME ct, et, kt, ut

Do
   If Timer - t > 0.99 Then
      GetProcessTimes(hProcHandle, @ct, @et, @kt, @ut)
      Locate iPosCursor, 1, 0
      ? ((kt.dwLowDateTime - ekt + ut.dwLowDateTime - eut) / 100000 / iCPUs)
      ekt = kt.dwLowDateTime
      eut = ut.dwLowDateTime
      t = Timer
   Endif
   'Sleep(10)
Loop Until Len(Inkey())

CloseHandle(hProcHandle)

Einfach die entsprechende PID eintragen und starten.
_________________
Gruß,
UEZ
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
pzktupel



Anmeldungsdatum: 07.07.2020
Beiträge: 43

BeitragVerfasst am: 04.03.2021, 14:40    Titel: Antworten mit Zitat

verlegen
Das vom Vorgänger reicht, habs schon eingebunden und mit MP3-Meldung verknüpft. Trotzdem danke, es bleibt ja zum Nachlesen hier erhalten.

Auszug:
Zitat:

dim f1 as integer = freefile, wert as string
open pipe "WMIC CPU GET LoadPercentage" for input as 1
line input #1, wert
line input #1, wert
If VAL(wert)<10 and VAL(S)>58600000 then SHELL("E:\SOUNDS\fertig.mp3"):SLEEP 10000
If VAL(wert)<10 and VAL(S)<58600000 then SHELL("E:\SOUNDS\stillstand.mp3"):SLEEP 10000

_________________
Zum Primzahl k-Tupel Thread
https://matheplanet.de/matheplanet/nuke/html/viewtopic.php?topic=232720&start=0
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz