Pinger

    • Beta

    Es gibt 28 Antworten in diesem Thema. Der letzte Beitrag () ist von nafets3646.

      Hier ein Mini-Projekt von mir. Ich habe es entwickelt, da ich es nervig fand, immer, wenn ich den Ping meines Minecraft-Servers wissen wollte, cmd.exe aufzurufen und dann "ping ..." einzutippen. Dieses Programm zeigt immer den aktuellen Ping eines Servers an.

      Name des Programms:
      Pinger

      Beschreibung:
      Dieses Programm pingt eine Web- oder eine IP-Adresse an. Die Zeit wird ständig aktualisiert.

      Verwendete Programmiersprache und IDE:
      Visual Basic .NET

      Systemanforderungen:
      z.B. .NET Framework 4.0

      Download:
      im Anhang, als .zip gepackt (43 KB)

      Lizenz/Weitergabe:
      Freeware
      Bilder
      • Hauptfenster.png

        25,61 kB, 316×215, 331 mal angesehen
      Dateien
      • Pinger.zip

        (43,82 kB, 196 mal heruntergeladen, zuletzt: )

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

      Komisch, dass der Fehler kommt. Ich breche doch extra den asynchronen Aufruf ab? Mal sehen, was ich tun kann.

      Sonst noch was wegen Fehlern, oder wie gut ihr es findet? Ich würde gerne die "Fehler" beseitigen :).
      cmd.exe
      ping -t google.com

      Aktualisiert jede Sekunde den Ping.
      Was also bringt mir dein Tool?
      "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

      Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
      Guter hintergedanke leider etwas unnötig,

      wie nikx schon erwähnt hat, kann ping.exe mehr als "ping 127.0.0.1".

      aber trotzdem nett, crasht bei mir aber, wenn ich "dumm und dähmlich" auf Start/stop klicke ^^

      mfg

      gfc

      MVN050 schrieb:

      muhahahahaaaa mein server hat ein besseren ping als google :D

      Steht bei Dir 'ne größere Zahl, ne? :P

      Da scheint was nicht ganz sauber programmiert zu sein.
      Drückt man wirklich schnell (also wirklich schnell... ~1000 Klicks pro Sekunde) auf den Button, wird eine System.InvalidOperationException ausgelöst:

      System.InvalidOperationException: Es läuft bereits ein asynchroner Aufruf. Er muss abgeschlossen oder abgebrochen werden, bevor Sie diese Methode aufrufen können.
      bei System.Net.NetworkInformation.Ping.CheckStart(Boolean async)
      bei System.Net.NetworkInformation.Ping.SendAsync(String hostNameOrAddress, Int32 timeout, Byte[] buffer, PingOptions options, Object userToken)
      bei System.Net.NetworkInformation.Ping.SendAsync(String hostNameOrAddress, Object userToken)
      bei Pinger.frmMain.SendPing()
      bei Pinger.frmMain.StartLoop()
      bei Pinger.frmMain.Button1_Click(Object sender, EventArgs e)

      Von Hand hab ichs aber nicht zum Abstürzen gebracht.


      Fazit: Macht was es soll. Für die meisten vielleicht etwas unnötig, aber ich persönlich bevorzuge dann doch lieber ein schönes Fenster, als eine schwarz-weiße Konsole, in der der Text durchscrollt.
      Design-mäßig absolut in Ordnung. Sogar der FormBorderStyle ist richtig eingestellt und die maximieren-Box ist deaktiviert :thumbup:
      Das einzige, was man vielleicht noch ändern könnte: Ist das Pingen pausiert/gestoppt, könnte man z.B. "Pausiert" anstelle von "Ping 0ms [...] an 0.0.0.0" anzeigen. Und das "g" von "Ping:" wird ein ganz kleines Bisschen abgeschnitten.
      Ansonsten sehr gut umgesetzt.
      "Luckily luh... luckily it wasn't poi-"
      -- Brady in Wonderland, 23. Februar 2015, 1:56
      Desktop Pinner | ApplicationSettings | OnUtils
      @Niko Ortner
      nein eine kleinere xD zwar nur um 1-3 zahlen aber egall :D ich bin besser als google xD nur das auf meinem server keiner drauf is und auf google die ölle los is aber das macht ja nich soviel vom ping aus :D

      finde das program auch gut gelungen... davon abgesehen... wer drückt schon 83264234 mal auf dne start/stop button?
      vllt 2 verschiedene buttons machen?
      Ich glaube, hier gibt's eher eine Race-Condition. Da wird vermutlich auch nicht helfen, zwei Buttons zu machen (außer natürlich, dass man zwei Buttons nicht so schnell drücken kann wie einen).

      Aus meiner Sicht sollte es prinzipiell so aufgebaut sein:

      VB.NET-Quellcode

      1. Dim WithEvents BGW As New System.ComponentModel.BackgroundWorker With {.WorkerSupportsCancellation = True, .WorkerReportsProgress = True}
      2. Private Sub StartStop() Handles Button_StartStop.Click
      3. If BGW.IsBusy Then
      4. Button_StartStop.Enabled = False
      5. Button_StartStop.Text = "Wird gestoppt..."
      6. BGW.CancelAsync()
      7. Else
      8. Button_StartStop.Text = "Läuft"
      9. BGW.RunWorkerAsync()
      10. End If
      11. End Sub
      12. Private Sub BGW_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BGW.DoWork
      13. Do Until BGW.CancellationPending
      14. 'DoStuffHere
      15. BGW.ReportProgress(Infos)
      16. Loop
      17. End Sub
      18. Private Sub BGW_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BGW.ProgressChanged
      19. 'Mit e.UserState oder e.ProgressPercentage arbeiten.
      20. End Sub
      21. Private Sub BGW_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BGW.RunWorkerCompleted
      22. Button_StartStop.Enabled = True
      23. Button_StartStop.Text = "Angehalten"
      24. End Sub

      So kann unmöglich zweimal ein Vorgang gestartet werden.
      "Luckily luh... luckily it wasn't poi-"
      -- Brady in Wonderland, 23. Februar 2015, 1:56
      Desktop Pinner | ApplicationSettings | OnUtils
      @Nikx & @gfcwfzkm
      Ich fand halt nen kompakteren und (jedenfalls für mich) übersichtlicheren GUI, wenn man ne Kommandozeile überhaupt als GUI bezeichnen kann, besser.

      @Niko Ortner
      Danke für den Tipp mit dem Backgroundworker. Habe nicht dran gedacht, weil der oben genannte Fehler bei mir nicht aufgetreten ist. Meinst du wirklich 1000 mal in der Minute klicken? Ich glaub mein PC würd das nicht mehr handlen können, obwohl er eigentlich net schlecht ist.
      @Mario K.
      Gute Idee, nur leider passt das meiner Meinung nach nicht so wirklich in das Design-Konzept. Ich will eben möglichst kompakt bleiben. Wie würdest du das einbinden? Vielleicht in einer anderen Form und dann ne Setting, die festlegt, welche Form gestartet werden soll?
      @nafets3646: Ich hab hier ein Programm namens SpeedAutoClicker. Das Problem ist nicht, wie schnell man klickt, sondern wie schnell das Programm auf die Klicks reagieren kann. Windows ist ziemlich gut was das Erkennen betrifft. Aber wenn z.B. der Code im Click-EventHandler 20ms dauert, kann auch nur maximal 50 Mal pro Sekunde darauf reagiert werden (weniger sogar, weil da nicht nur der Code im Programm ausgeführt wird, sondern auch ein Bisschen mehr).
      Ein Diagramm würde sich sicherlich einbauen lassen, indem man die Form per Button-Klick ausklappt und so das Diagramm sichtbar macht. So kann man auswählen, ob man das Diagramm möchte, oder nicht.
      "Luckily luh... luckily it wasn't poi-"
      -- Brady in Wonderland, 23. Februar 2015, 1:56
      Desktop Pinner | ApplicationSettings | OnUtils
      Deine Vorgehensweise ist etwas seltsam, unter Berücksichtigung, das dieses Programm keinen wirklichen Nutzen hat.
      Einerseits gibt es etliche Programme die dies implementieren und nebenbei mehr Funktionalität besitzen sowie andererseits der Abruf der den Ping innerhalb 2 Klicks abrufen kann..
      Ansonsten macht er das, was man unter dem Titel impliziert ;)
      @Krischkros
      Ich finde, dass es nen Nutzen hat. Wenn ich etwas gebrauchen kann, kann es sicher auch jemand anderes gebrauchen ;). Die zusätzlichen Funktionen kommen noch. Außerdem finde ich halt das Design übersichtlicher als bei den meinsten Programmen und der cmd.exe.
      @nafets3646

      Ich muss dazu sagen das es mich auch immer nervt erst in die CMD zu gehen wenn ich mal schnell pingen will (oder sonstwas) .
      Ich denke das jedes Programm seine Daseinsberechtigung hat - erleichtert ja auch den Alltag :)
      Wenn es noch schön anzusehen und leicht bedienbar ist finde ich das ne Gute Idee ;)
      :D Ein Programm sollte nicht nur Hand und Fuß, sondern auch Herz und Hirn haben. (Michael Anton) :D

      MFG Jörg ;)

      Muss jeder vermeintliche Programmierer ne Signatur haben ??
      Ich hab einen Vorschlag für eine neuere Version.

      Wie wärs wenn du 2 Radio-Buttons oder Checkboxen zum auswählen mit, "aktuelle IP/URL speichern" und "Standarteinstellung" (in dem Fall google.de) anbringst.

      Du könntest das ganze sogar mit einem Button und einer 2. Form für einen Editor für eine in der 1. Form aufklappbare Schnellauswahlliste kombinieren.
      M.f.G. Nitro-X
      Gute Spieler cheaten schlecht! 8-)

      Button1.Visible = False
      If Button1.Click then Shell ("C:\brain.exe")
      end if
      Hättest du denn vielleicht nen Vorschlag, wo ich das hinpflanzen sollte? Mir fällt nicht wirklich was ein, was nicht dem Sinn des Designs entsprechen würde, es soll ja klein, übersichtlich und ohne irgendwelche versteckten Funktionen bleiben.
      Hier ist mal ein Vorschlag als Bild.
      Ich hoffe es verwirrt nicht zu sehr, links oben fehlt noch ein Button um die 2. Form aufzurufen.
      Ist mit Paint erstellt worden, also nicht wegen dem komischen Stil wundern.
      Folgende Kombinationen sind möglich:

      Variante mit 2 Forms: Links und rechts oben.
      "Popout-Variante" Rechts unten, die erspart ne Menge Platz für eine extra Form.
      Bilder
      • Vorschlag.png

        48,62 kB, 934×428, 198 mal angesehen
      M.f.G. Nitro-X
      Gute Spieler cheaten schlecht! 8-)

      Button1.Visible = False
      If Button1.Click then Shell ("C:\brain.exe")
      end if

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Nitro-X“ ()