Listview Ping Items

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von FingerMister.

    Hi und Willkommen.

    Im Designer eine Listview auf eine Form ziehen und dann ein paar Items im Designer hinzufügen ist keine Programm schreiben ;)

    Lass am besten erstmal die Listview weg. Was du benötigst ist eine List Of. Diese List beinhaltet im einfachsten Fall Strings mit Hostnamen oder IPAddress.

    Pings führt man am besten damit aus:

    msdn.microsoft.com/en-us/libra…ang=csharp#code-snippet-2
    msdn.microsoft.com/en-us/libra….pingreply(v=vs.110).aspx

    Möchtest du viele Pings in Abfolge ausführen und etwas mehr anzeigen, dann sollte die List eine Auflistung von nennen wir es PingTargets sein. Diese Klasse PingTargets sollte eine Property namens IPAddress oder Hostname haben und dann je nach Anforderung vll PingCount, PingAverageTime (wenn du mehrere Pings ausführen willst) und diese befüllst du.


    TLDR: Ignorier erstmal Controls. Diese dienen nur der Anzeige. Überlege dir welche Daten du brauchst ( Siehe Datenmodell)

    LG
    Das ist meine Signatur und sie wird wunderbar sein!
    @FingerMister Trenne zunächst Daten und GUI.
    Wenn Du zu den Adressen eine Antwort speichern musst, nimm eine DataTable mit einer Uri- und einer Boolean-Spalte.
    In einer Timer-Tick-Prozedur löschst Du alle Boolean-Werte, rufst je ein Ping aus, speicherst die Antwort im Boolean-Teil und sendest parallel die EMails.
    Wenn sich die EMail-Adressen nicht einheitlich aus den URLs ergeben, füge der DataTable eine String-Spalte hinzu, wobei die String-Komponente die EMail-Adresse verkörpert.
    Nach Abarbeitung aller Adressen zeigst Du das Ergebnis an.
    ====
    Bestell mal Deinem Dozenten einen schönen Gruß vom Forum, er möge das ranz ListView aus dem Portfolio nehmen.
    Wir arbeiten mit DataGridViews. Da hast Du mit einem Einzeiler die Anzeige erledigt, außerdem kannst Du die Daten wiederum mit einem Einzeiler speichern und laden:

    VB.NET-Quellcode

    1. DataGridView1.DataSource = DataTable1

    Feddich.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich habe jetzt einen Code geschrieben und den Rat von @Mono befolgt und mit List of gearbeitet. Einen kleinen Fehler habe ich allerdings noch.

    VB.NET-Quellcode

    1. Dim test As New List(Of String)
    2. For Each line As ListViewItem In ListView1.Items
    3. test.Add(line.Text)
    4. Next
    5. If My.Computer.Network.Ping(test, 500) Then
    6. MsgBox("Server ist Erreichbar")
    7. Else
    8. MsgBox("Server ist nicht Erreichbar ")
    9. End If

    FingerMister schrieb:

    Einen kleinen Fehler

    FingerMister schrieb:

    MsgBox
    Nicht nur einen! MsgBox ist der alte VB6 Stil. Nimm bitte die Klasse MessageBox aus dem Namespace System.Windows.Forms her.

    Aber auf was du dich hier beziehst, ist folgendes: Du versuchst die Methode Ping mit einer Liste von Elementen aufzurufen. Die Methode nimmt aber keine Liste von Strings sondern lediglich einen einzelnen String. Außerdem: Kein My.Computer... verwenden. Verwende, wie @Mono geschrieben hat, System.Net.NetworkInformation.Ping.

    Um alle Elemente aus der ListeView zu pingen, schreib die Ping-Methode doch in die Schleife rein und übergib das aktuelle Element aus der For Each Schleife an Ping()
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Radinator“ ()

    FingerMister schrieb:

    /tt
    Das dient der Formatierung der Posts:
    tt-ohne
    tt-mit

    , manchmal macht das Blödsinn.
    Also: Einfach ignorieren.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!