CPU-Auslastung eines Prozesses mit VB auslesen

Dieses Thema CPU-Auslastung eines Prozesses mit VB auslesen im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von kannauchnix, 9. Mai 2005.

Thema: CPU-Auslastung eines Prozesses mit VB auslesen Hallo, ich hab ein Problem mit der Prozessüberwachung. Ich sollte daher die Prozessorlast eines einzelnen Prozesses...

  1. Hallo, ich hab ein Problem mit der Prozessüberwachung. Ich sollte daher die Prozessorlast eines
    einzelnen Prozesses mit VB auslesen (wie eigentlich auch im Taskmanager von Win angezeigt wird).
    Könnte ich evtl. über die API fündig werden ?
    Würde mich über jede Hilfe freuen.

    Danke
     
  2. Danke für den Tip, aber leider bezieht sich der Code nur auf die gesamte Auslastung und nicht auf die eines Przesses.
     
  3. Deswegen steht da ja auch Ansatz und nicht fertige copy and paste Lösung. ;)

    Eddie
     
  4. Hallo,

    ich bin mir nicht ganz sicher, ob das dein Problem löst,
    aber du könntest es mal mit der API GetProcessTimes() versuchen.
    Damit kannst du die CPU-Zeiten auslesen, die ein Prozess im Kernel-Mode, bzw. User-Mode verbraucht.
    Das für GetProcessTimes() nötige  Prozess-Handle holst du dir mit OpenProcess(), wobei du die Prozess-Id des Prozesses wissen musst, den du verarbeiten willst.
    Mit GetProcessIoCounters() kannst du auch noch die I/O-Aktivitäten überwachen.

    Gruss

    Reiner
     
  5. Vielen Dank für Eure Mühe, ich bin über WSH endlich drübergestolpert und hab's dann in VB umgesetzt.
    die Lösung geht über WMI und funktioniert super.
    Hier das originale Scribt (VBS) indem die Aktivität der notepad.exe geprüft wird:

    'Get % Processor Time for a process
    'Connect to Local Machine
    set wmi_service = GetObject(winmgmts:{impersonationlevel=impersonate}!\root\cimv2)

    sObjectPath = Win32_PerfRawData_PerfProc_Process.Name= & chr(34) & notepad & chr(34)
    wscript.echo sObjectPath

    set perf_instance1 = wmi_service.get( sObjectPath )
    N1 = perf_instance1.PercentProcessorTime
    D1 = perf_instance1.TimeStamp_Sys100NS

    while true

    'Sleep for one second = 1000 ms
    wscript.sleep(1000)

    set perf_instance2 = wmi_service.get( sObjectPath )
    N2 = perf_instance2.PercentProcessorTime
    D2 = perf_instance2.TimeStamp_Sys100NS

    ' CounterType - PERF_100NSEC_TIMER
    ' Formula = ((N2 - N1) / (D2 - D1)) x 100

    if ( 0 = (D2-D1) ) then
    wscript.echo divide by zero
    else
    PercentProcessorTime = ((N2 - N1) / (D2 - D1)) * 100
    wscript.echo % Processor Time = , PercentProcessorTime
    end if

    N1 = N2
    D1 = D2
    wend

    set wmi_service = nothing

    Vieleicht kann ich damit einem Mitleidenden weiterhelfen.
     
Die Seite wird geladen...

CPU-Auslastung eines Prozesses mit VB auslesen - Ähnliche Themen

Forum Datum
Hohe CPU-Auslastung durch "apple. sync mapi interface helper x64.exe" Software: Empfehlungen, Gesuche & Problemlösungen 1. Jan. 2012
Re: Wer steuert die CPU-Auslastung/CPU-Verteilung bei WinXP-Home (SP3) Windows XP Forum 26. Apr. 2009
Wer steuert die CPU-Auslastung/CPU-Verteilung bei WinXP-Home (SP3) Windows XP Forum 23. Apr. 2009
Seltsame CPU-Auslastung durch Firefox Windows XP Forum 22. März 2009
100% CPU-Auslastung bei manchen Seiten - wie ausfindig machen? Web-Browser 27. Juni 2008