PC-Pinger

  • Moin ^^
    Mir is grad etwas langweilig, und deswegen hab ich schnell den PC-Pinger gemacht.
    Is eigl. nichts anderes als die "Ping" Funktion von AutoIt nur mit besserer Optik ^^

    Hier das Script...

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <EditConstants.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate(" PC-Pinger", 350, 110, 493, 474, BitOR($WS_SYSMENU,$WS_BORDER,$WS_CLIPSIBLINGS), $WS_EX_TOOLWINDOW)
    GUISetBkColor (0xaaff00)
    $Input1 = GUICtrlCreateInput("", 8, 8, 45, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_NUMBER,$WS_BORDER), BitOR($WS_EX_CLIENTEDGE,$WS_EX_STATICEDGE))
    GUICtrlSetLimit (-1, 3, 0)
    $Input2 = GUICtrlCreateInput("", 64, 8, 45, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_NUMBER,$WS_BORDER), BitOR($WS_EX_CLIENTEDGE,$WS_EX_STATICEDGE))
    GUICtrlSetLimit (-1, 3, 0)
    $Input3 = GUICtrlCreateInput("", 120, 8, 45, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_NUMBER,$WS_BORDER), BitOR($WS_EX_CLIENTEDGE,$WS_EX_STATICEDGE))
    GUICtrlSetLimit (-1, 3, 0)
    $Input4 = GUICtrlCreateInput("", 176, 8, 45, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_NUMBER,$WS_BORDER), BitOR($WS_EX_CLIENTEDGE,$WS_EX_STATICEDGE))
    GUICtrlSetLimit (-1, 3, 0)
    GUICtrlCreateLabel(".", 56, 9, 5, 25)
    GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
    GUICtrlCreateLabel(".", 112, 9, 5, 25)
    GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
    GUICtrlCreateLabel(".", 168, 9, 5, 25)
    GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
    $Button1 = GUICtrlCreateButton("Computer anpingen", 228, 8, 111, 21, 0, $WS_EX_CLIENTEDGE)
    $Input5 = GUICtrlCreateInput("", 8, 60, 329, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY,$WS_BORDER), BitOR($WS_EX_CLIENTEDGE,$WS_EX_STATICEDGE))
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $Label1 = GUICtrlCreateLabel("Status:", 8, 44, 44, 15, -1, $WS_EX_STATICEDGE)
    GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    _Check (GUICtrlRead ($Input1), GUICtrlRead ($Input2), GUICtrlRead ($Input3), GUICtrlRead ($Input4), $Input5)
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Check ($Para1, $Para2, $Para3, $Para4, $Para5)
    $Ping = Ping ($Para1 & "." & $Para2 & "." & $Para3 & "." & $Para4, 5000)
    If @Error Then
    Switch @error
    Case 1
    GUICtrlSetBkColor ($Para5, 0xFF0000)
    GUICtrlSetData ($Para5, "Fehler: Der Computer ist offline!")
    Beep (80, 300)
    Case 2
    GUICtrlSetBkColor ($Para5, 0xFF0000)
    GUICtrlSetData ($Para5, "Fehler: Der Computer ist nicht erreichbar!")
    Beep (80, 300)
    Case 3
    GUICtrlSetBkColor ($Para5, 0xFF0000)
    GUICtrlSetData ($Para5, "Fehler: Falsche IP-Adresse!")
    Beep (80, 300)
    Case 4
    GUICtrlSetBkColor ($Para5, 0xFF0000)
    GUICtrlSetData ($Para5, "Fehler: Bitte geben Sie zuerst eine IP ein!")
    Beep (80, 300)
    EndSwitch
    Else
    GUICtrlSetBkColor ($Para5, 0x00FF00)
    GUICtrlSetData ($Para5, "Erfolgreich: Der Computer wurde erfolgreich angepingt.")
    Beep (4000, 50)
    Sleep (50)
    Beep (5000, 50)
    Sleep (50)
    Beep (6000, 50)
    EndIf
    EndFunc ;==> _Check

    [/autoit]
  • Toll! :thumbup:
    So kann ic immer sehen, wer derade im Netz on ist!
    Edit:/ Dafür brauchts keinen neuen Post: Du solltest bereits die @ipAdress1 oder (besser) in die 1. drei Kästchen schon [192].[168].[0].[] schreiben, so isses meistens im Netz!

    MfG. tobi_girst

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »tobi_girst« (Morgen, 25:63)

    Einmal editiert, zuletzt von tobi_girst (1. Juli 2009 um 19:00)

  • Ist zwar nichts aufregendes - trotzdem praktisch!
    Noch cooler wäre es wenn der Fokus nach 3 Zahlen automatisch weiterspringen würde!

    1. abfragen welches Input den Fokus hat (GUICtrlGetState oder sowas)
    2. "Stringlen" bestimmen
    3. ggf weiterspringen

    Blöderweise funktioniert das so gerade nicht bei mir. X(

  • Thx, werds mal probiern mit dem auto-weiterspringen.
    Werd mir dazu gleich mal die von Oscar genannte Funktion ansehn. ^^

    EDIT:
    So, habs jetz noch etwas verbessert.
    Man kann jetz zwischen IP eingabefeld und Domain Eingabefeld wählen.
    Hab jetz auch _GUICtrlIpAddress_Create verwendet, erspart wirklich einiges ^^ thx

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <EditConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiIPAddress.au3>
    Global $Input = 0

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate(" PC-Pinger", 350, 130, -1, -1, BitOR($WS_SYSMENU,$WS_BORDER,$WS_CLIPSIBLINGS), $WS_EX_TOOLWINDOW)
    GUISetBkColor (0xaaff00)
    $Ip = _GUICtrlIpAddress_Create($Form1, 8, 8, 210, 21)
    $Domain = GUICtrlCreateInput ("", 8, 8, 210, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$WS_BORDER), BitOR($WS_EX_CLIENTEDGE,$WS_EX_STATICEDGE))
    GUICtrlSetState (-1, $GUI_HIDE)
    $Button1 = GUICtrlCreateButton("Computer anpingen", 228, 8, 111, 21, 0, $WS_EX_CLIENTEDGE)
    $Input1 = GUICtrlCreateInput("", 8, 60, 329, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY,$WS_BORDER), BitOR($WS_EX_CLIENTEDGE,$WS_EX_STATICEDGE))
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $Label1 = GUICtrlCreateLabel("Status:", 8, 44, 44, 15, -1, $WS_EX_STATICEDGE)
    GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")
    $Menu = GUICtrlCreateMenu ("Eingabefeld")
    $Item1 = GUICtrlCreateMenuItem ("Domain Eingabefeld", $Menu)
    $Item2 = GUICtrlCreateMenuItem ("IP Eingabefeld", $Menu)
    GUICtrlSetState (-1, $GUI_CHECKED)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    If $Input = 0 Then
    _Check (_GUICtrlIpAddress_Get ($Ip), $Input1)
    ElseIf $Input = 1 Then
    _Check (GUICtrlRead ($Domain), $Input1)
    EndIf
    Case $Item1
    GUICtrlSetState ($Item1, $GUI_CHECKED)
    GUICtrlSetState ($Item2, $GUI_UNCHECKED)
    _GUICtrlIpAddress_Destroy ($Ip)
    GUICtrlSetState ($Domain, $GUI_SHOW)
    $Input = 1
    Case $Item2
    GUICtrlSetState ($Item1, $GUI_UNCHECKED)
    GUICtrlSetState ($Item2, $GUI_CHECKED)
    $Ip = _GUICtrlIpAddress_Create($Form1, 8, 8, 210, 21)
    GUICtrlSetState ($Domain, $GUI_HIDE)
    $Input = 0
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Check ($Para1, $Para2)
    $Ping = Ping ($Para1, 5000)
    If @Error Then
    Switch @error
    Case 1
    GUICtrlSetBkColor ($Para2, 0xFF0000)
    GUICtrlSetData ($Para2, "Fehler: Der Computer ist offline!")
    Beep (300, 300)
    Case 2
    GUICtrlSetBkColor ($Para2, 0xFF0000)
    GUICtrlSetData ($Para2, "Fehler: Der Computer ist nicht erreichbar!")
    Beep (300, 300)
    Case 3
    GUICtrlSetBkColor ($Para2, 0xFF0000)
    GUICtrlSetData ($Para2, "Fehler: Falsche IP-Adresse!")
    Beep (300, 300)
    Case 4
    GUICtrlSetBkColor ($Para2, 0xFF0000)
    GUICtrlSetData ($Para2, "Fehler: Bitte geben Sie eine gültige IP oder Domain ein!")
    Beep (300, 300)
    EndSwitch
    Else
    GUICtrlSetBkColor ($Para2, 0x00FF00)
    GUICtrlSetData ($Para2, "Erfolgreich: Der Computer wurde erfolgreich angepingt.")
    Beep (3500, 50)
    Sleep (50)
    Beep (4000, 50)
    Sleep (50)
    Beep (4500, 50)
    EndIf
    EndFunc ;==> _Go

    [/autoit]

    Einmal editiert, zuletzt von Commander21 (2. Juli 2009 um 17:13)