Prozesse Überwachen mit VBA
Schritt-für-Schritt-Anleitung
-
Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
-
Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (DeineDatei.xlsx)" > Einfügen > Modul.
-
Kopiere den folgenden Code in das Modul:
Sub Prozesse_auflisten()
Set objWindowsService = GetObject("winmgmts:" & _
"{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colProcessList = objWindowsService.ExecQuery("SELECT * FROM Win32_Process")
Dim a As Long
For Each objProcess In colProcessList
a = a + 1 ' Zeilenzähler
Cells(a, 1).Value = objProcess.Name ' Ausgabe Name
Cells(a, 2).Value = objProcess.ProcessId ' Ausgabe ID
Cells(a, 3).Value = objProcess.WorkingSetSize ' Ausgabe Arbeitsspeicher
Next objProcess
End Sub
-
Führe das Makro aus: Drücke F5 oder gehe zu Ausführen > Sub/UserForm ausführen.
-
Überwache die Prozesse: Der Code listet alle Prozesse und deren Arbeitsspeicher in Excel auf.
Häufige Fehler und Lösungen
Alternative Methoden
Für das Überwachen von Prozessen kann auch PowerShell verwendet werden. Hier ein Beispielcode:
$Test = 1
$Out = "$env:userprofile\desktop\CpuRam.txt"
Do {
$Date = get-date -format G
$CPU = (get-wmiobject Win32_processor).Loadpercentage
$Mem = (get-wmiobject Win32_PerfRawData_PerfOS_Memory).CommittedBytes / 1GB
Write-output "$Date: CPU = $CPU %, RAM = $Mem GB" | out-file $Out -append -noclobber
Start-Sleep -Seconds 1
} While ($Test -eq 1)
Um diesen Code auszuführen, speichere ihn in einer Datei mit der Endung .ps1 und führe ihn mit PowerShell aus.
Praktische Beispiele
Ein einfaches Beispiel für das Überwachen des Arbeitsspeichers eines bestimmten Prozesses, z.B. AcroRD32.exe:
Sub Überwache_Prozess()
Dim objProcess As Object
Dim objWMIService As Object
Dim colItems As Object
Dim strComputer As String
strComputer = "."
Set objWMIService = GetObject("winmgmts:\" & strComputer & "root\cimv2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'AcroRD32.exe'")
For Each objProcess In colItems
Debug.Print "Arbeitsspeicher von " & objProcess.Name & ": " & objProcess.WorkingSetSize
Next
End Sub
Mit diesem Makro kannst du den Arbeitsspeicher des Adobe Acrobat Readers überwachen.
Tipps für Profis
- Verwende Ereignisse: Implementiere Ereignisse, um Benachrichtigungen zu erhalten, wenn der Arbeitsspeicher eines Prozesses über einen bestimmten Schwellenwert steigt.
- Visualisierung: Überlege, Diagramme in Excel zu verwenden, um Trends in der Speichernutzung zu visualisieren.
- Sicherheit: Achte darauf, dass deine VBA-Skripte sicher sind und keine sensiblen Daten preisgeben.
FAQ: Häufige Fragen
1. Kann ich Prozesse überwachen ohne VBA?
Ja, du kannst auch PowerShell oder den Windows Task-Manager verwenden, um Prozesse zu überwachen.
2. Wie kann ich den Code anpassen, um mehr Informationen zu erhalten?
Du kannst zusätzliche Felder aus der Win32_Process-Klasse abfragen, z.B. VirtualSize oder PageFileUsage, um mehr Details zu erhalten.
3. Funktioniert das auch in Excel Online oder nur in der Desktop-Version?
VBA funktioniert nur in der Desktop-Version von Excel und nicht in Excel Online.