Visual Basic Textbox Multiline und Prozessüberprüfungs Problem
Hallo
ich habe bei meinem VB-Programm ein paar Probleme.
Ich möchte Prozesse überwachen ob diese An oder Aus sind. Um mehrere Prozesse zu überwachen habe ich eine Textbox Multiline
in der mehrere Prozesse stehen ..als Überprüfung dieser setz ich diesen Code ein:
Sobald ein Prozess aus ist soll er mich warnen
funktioniert zwar aber leider nicht sehr zuverlässig. Kennt jemand eine bessere Lösung um Multilines auszulesen?
Danke schon mal
ich habe bei meinem VB-Programm ein paar Probleme.
Ich möchte Prozesse überwachen ob diese An oder Aus sind. Um mehrere Prozesse zu überwachen habe ich eine Textbox Multiline
in der mehrere Prozesse stehen ..als Überprüfung dieser setz ich diesen Code ein:
Sobald ein Prozess aus ist soll er mich warnen
For Each zeile As String In ProzessListe.Lines
Dim listProc() As System.Diagnostics.Process
listProc = System.Diagnostics.Process.GetProcessesByName(zeile)
If listProc.Length > 0 Then
ProzessIstAn.Text = "Alle Prozesse sind an"
Else
MsgBox("Prozesse sind aus")
End if
Next
funktioniert zwar aber leider nicht sehr zuverlässig. Kennt jemand eine bessere Lösung um Multilines auszulesen?
Danke schon mal
Please also mark the comments that contributed to the solution of the article
Content-Key: 290707
Url: https://administrator.de/contentid/290707
Printed on: April 25, 2024 at 08:04 o'clock
6 Comments
Latest comment
Moin,
Mach das doch z.B. mit einem ListView-Control im Details-Mode und zwei Columns
Gruß grexit
funktioniert zwar aber leider nicht sehr zuverlässig.
Was heißt unzuverlässig in "Fehlermeldung" ? Vermutlich Leerzeichen nicht getrimmt() Mach das doch z.B. mit einem ListView-Control im Details-Mode und zwei Columns
With lv1
.Items.Clear()
Dim processes() As String = {"outlook", "calc", "powershell", "excel"}
For Each proc In processes
.Items.Add(proc)
Next
For Each itm As ListViewItem In .Items
If Process.GetProcessesByName(itm.Text).Length > 0 Then
itm.SubItems.Add("Online")
itm.BackColor = Color.LightGreen
Else
itm.SubItems.Add("Offline")
itm.BackColor = Color.OrangeRed
End If
Next
End With
Die Sache ist..wenn ich z.b 2x den Prozess: Test im Abstand von 10 Sek prüfen lass..dann gibt er mir 1mal eine MSGBOX mit Inhalt( Test ist aus ...Test ist aus) und direkt danach das ganze doppelt nochmal also (Test ist aus...Test ist aus...Test ist aus..Test ist aus)
Dann speichere dir den Benachrichtigungs-Status in einer Variablen (Hashtable/ArrayList je nach Gusto) welche du in deiner Schleife abfragst und nur dann eine Msgbox ausgibst wenn die Variable einen bestimmten Wert hat. Oder du nutzt den Rückgabewert der Msgbox als Statusvariable für die Benachrichtigung.Die Frage ist ob hier eine MSGBox eher fehl am Platz ist, heutzutage gibt es so viele Mögichkeiten der Benachrichtigung (Controls/Traysymbol/EMail etc..pp) da ist eine MsgBox eher kontraproduktiv, die hat man schnell mal aus Versehen oder unbewusst beim Schreiben weggeklickt -gedrückt.