Task Manager

    • VB.NET

    Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von bigbasti.

      Task Manager

      Hallo,

      Hier ein code wie man einen eigenen Taskmanager programmieren kann.
      Was wird benötigt
      1 Listview = Listview1
      1 Button = Button1, text = Prozess beenden
      1 Button = Button2, text = aktualisieren
      1 label = label1, text = Aktive Prozesse
      1 label = label2, text = 0


      so zum code:

      form_load:

      VB.NET-Quellcode

      1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      2. Timer1.Enabled = True
      3. Timer1.Interval = 10000
      4. Check()
      5. With ListView1
      6. .View = View.Details
      7. .Sorting = SortOrder.Ascending
      8. .FullRowSelect = True
      9. .Columns.Add("Prozess", 100, HorizontalAlignment.Left)
      10. .Columns.Add("Dateiname", 250, HorizontalAlignment.Left)
      11. .Columns.Add("pid", 50, HorizontalAlignment.Right)
      12. End With
      13. End Sub

      der anfang sollte klar sein ;) also Check ist dann die Funktion die später kommt...
      er stellt die view auf details und sortiert es und fügt 3 spalten hinzu

      dann kommt die funktion check(die zeigt die prozesse in der listview an):

      VB.NET-Quellcode

      1. Private Function Check()
      2. ListView1.Items.Clear()
      3. Dim oItem As ListViewItem
      4. With ListView1
      5. For Each oProcess As Process In Process.GetProcesses
      6. oItem = .Items.Add(oProcess.ProcessName)
      7. Try
      8. oItem.SubItems.Add(oProcess.MainModule.FileName)
      9. Catch
      10. oItem.SubItems.Add("")
      11. End Try
      12. oItem.SubItems.Add(oProcess.Id.ToString)
      13. Next
      14. End With
      15. Label2.Text = ListView1.Items.Count
      16. End Function

      dann der button1 "killt" den Prozess:

      VB.NET-Quellcode

      1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      2. With ListView1
      3. If .SelectedItems.Count > 0 Then
      4. Dim result As MsgBoxResult = MessageBox.Show("Aktuelle Prozess tatsächlich beenden?", MsgBoxStyle.Question Or MsgBoxStyle.YesNo)
      5. If result = MsgBoxResult.Yes Then
      6. Dim oProcess As Process = Process.GetProcessById(Val(.SelectedItems(0).SubItems(2).Text))
      7. Try
      8. oProcess.Kill()
      9. Catch ex As Exception
      10. Beep()
      11. MessageBox.Show("Fehler beim Beenden!" & vbCrLf & ex.Message.ToString)
      12. End Try
      13. Check()
      14. ElseIf result = MsgBoxResult.No Then
      15. End If
      16. End If
      17. End With
      18. End Sub


      und dann noch der button2(aktualisieren):

      VB.NET-Quellcode

      1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
      2. Check()
      3. End Sub

      soo das war der code ;)

      lg Gugi

      Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „Gugi“ () aus folgendem Grund: Code bisschen überarbeitet

      Wofür genau sind die Timer gut?
      Und wenn du die Timer irgendwo startest, was ich nirgendwo erkennen kann, solltest du sie auch anhalten.
      Vor allem bei so sinnlosen Timern wie Timer1 und Timer2.
      Dann kann man den Code von Timer3 auch besser so schreiben:

      VB.NET-Quellcode

      1. CTD -= 1

      Wofür ist CTD überhaupt gut, außer, dass der Integer von 10 immer weiter runtergezählt wird?

      Außerdem rieche ich C&P: elitepvpers.de/forum/epvp-code…visual-basic-und-cmd.html
      Runterscrollen bis zu Visual Basic -> Taskmanager.

      Samus Aran schrieb:

      Wofür genau sind die Timer gut?
      Und wenn du die Timer irgendwo startest, was ich nirgendwo erkennen kann, solltest du sie auch anhalten.
      Vor allem bei so sinnlosen Timern wie Timer1 und Timer2.
      Dann kann man den Code von Timer3 auch besser so schreiben:

      VB.NET-Quellcode

      1. CTD -= 1

      Wofür ist CTD überhaupt gut, außer, dass der Integer von 10 immer weiter runtergezählt wird?

      Außerdem rieche ich C&P: elitepvpers.de/forum/epvp-code…visual-basic-und-cmd.html
      Runterscrollen bis zu Visual Basic -> Taskmanager.

      der code ist nicht von diesem forum.
      hab den code ein bisschen überarbeitet, werde ihn gleich umändern

      lg Gugi

      Gugi schrieb:

      Taskmanager programmieren
      Das ist kein TaskManager sondern eine prozessliste zu einem Taskmanager gehört eine fensterliste, cpu, netzwerk, benutzer (siehe windows Taskmanager)



      Gugi schrieb:


      VB.NET-Quellcode

      1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      2. With ListView1
      3. If .SelectedItems.Count > 0
      4. Then
      5. If MsgBox("Aktuelle Prozess tatsächlich beenden?", MsgBoxStyle.Question Or MsgBoxStyle.YesNo)
      6. Then Dim oProcess As Process = Process.GetProcessById(Val(.SelectedItems(0).SubItems(2).Text))
      7. Try
      8. oProcess.Kill()
      9. Catch ex As Exception Beep()
      10. MsgBox("Fehler beim Beenden!" & vbCrLf & ex.Message.ToString)
      11. End Try
      12. Check()
      13. End If
      14. End If
      15. End With
      16. End Sub

      VB.NET-Quellcode

      1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      2. With ListView1
      3. If .SelectedItems.Count > 0 And MsgBox("Aktuelle Prozess tatsächlich beenden?", MsgBoxStyle.Question Or MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
      4. Try
      5. Process.GetProcessById(CInt(.SelectedItems(0).SubItems(2).Text)).Kill()
      6. Catch ex As Exception
      7. Beep()
      8. MsgBox("Fehler beim Beenden!" & vbCrLf & ex.Message.ToString)
      9. End Try
      10. Check()
      11. End If
      12. End With
      13. End Sub



      Gugi schrieb:


      VB.NET-Quellcode

      1. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
      2. Label2.Text = ListView1.Items.Count
      3. End Sub

      kommt weg (wie Timer1) und wird in den Sub Check() übetragen...
      Hallo Gugi,

      wieder einer der MsgBox der Messagebox vorzieht.
      tststs
      und das in einem Tutorial

      VB.NET-Quellcode

      1. If MsgBox("Aktuelle Prozess tatsächlich beenden?", MsgBoxStyle.Question Or MsgBoxStyle.YesNo)
      2. Then Dim oProcess As Process = Process.GetProcessById(Val(.SelectedItems(0).SubItems(2).Text))

      geht gar nicht !

      VB.NET-Quellcode

      1. oProcess.Kill()

      vor dem Kill sollte immer mit CloseMainWindow gearbeitet werden.

      Alles in allem ist diese Ansammlung von Codeschnippseln es nicht wert Tutorial genannt zu werden. :thumbdown:

      Gruss

      mikeb69

      JU84553Hgd schrieb:

      Das
      ist kein TaskManager sondern eine prozessliste zu einem Taskmanager
      gehört eine fensterliste, cpu, netzwerk, benutzer (siehe windows
      Taskmanager)

      Nein? Das Wort Taskmanager setzt sich
      aus Task und Manager zusammen Task->Aufgage und Manager - Ein
      Taskmanager verwaltet also Aufgaben bzw. Przesse. Und genau das macht
      dieses Tool. Es zeigt ein paar (leider nicht alle) Prozesse
      anzeigt und bietet die Option diese Zu schließen. (Windows 98 Style)

      Was
      der Windows NT Taskmanater da noc hanbietet sind reine Extras, die mit
      Task - Nicht mehr viel zu Tun haben.

      @Gugi: Du könntest dein
      programm erweitern und es alle laufenden Programme anzeigen lassen.
      Schau dir dazu diese Funktion an:

      EnumWindows Function
      msdn.microsoft.com/de-de/library/ms633497%28v=VS.85%29.aspx

      Dazu
      habe ich mal ein Beispiel in C# geschrieben.