Schleife Pausieren?

  • Hi alle zusammen, ich arbeite gerade an einen Programm wo alle IP's im Netz geping werden und dann augelistet werden

    Spoiler anzeigen
    [autoit]

    #include <A3LIPAddress.au3>
    Global $name = 1

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

    $gui = GUICreate("Network Manager",230,170)
    $ipi = _IPAddress_Create($gui,10, 15)
    _IPAddress_SetAddressStr($ipi,@IPAddress1)
    $label1 = GUICtrlCreateLabel(" - ",148,19, 13, 13)
    $ipinput = GUICtrlCreateInput("255" ,167, 15, 44, 20)
    $Updown = GUICtrlCreateUpdown(-1)
    GUICtrlSetLimit(-1, 255, "1")
    $button = GUICtrlCreateButton ("Go",130, 40, 40)
    $listview = GUICtrlCreateListView(" IP | Name ",10, 70, 210, 90)
    $abcip=StringSplit(@IPAddress1,".")
    $label2 = GUICtrlCreateLabel("Ready",20,45,80)
    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()

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

    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit


    Case $msg = $button

    $ip2 = $abcip[1] & "." & $abcip[2] & "." & $abcip[3] & "."
    While 1
    For $x = $abcip[4] to GUICtrlRead($ipinput)
    $ip = $ip2 & $x
    GUICtrlSetData($label2, $ip)
    $ping = Ping ($ip,50)
    If $name = 1 Then
    If $ip = @IPAddress1 Then
    $iptoname = @ComputerName & "(Your PC)|"
    EndIf
    Else
    $iptoname = ""
    EndIF
    If Not @error Then
    GUICtrlCreateListViewItem($ip&"|"&$iptoname, $listview)
    EndIf
    Next
    WEnd

    EndSelect
    WEnd

    [/autoit]


    Das Problem ist: Es fäng immer erst ab der einenen Ip zu Pingen an und wie mache ich einen "Pause" Button, der die schleife unterbricht bis man sie fortsezt...help
    Falls noch jemand Ideen einfallen, plz Schreib es dazu!

    Einmal editiert, zuletzt von ChiefORZ (19. September 2007 um 15:01)

  • Ich bitte um hilfe

    Kommentar peethebee: Nach zwölf Minuten gepusht - wird hier nicht gerne gesehen. Begründung siehe unten bei GtaSpider.

  • gaaaaanz ruhig.

    keiner kann hexen.

    nimmst Du sleep, dann pausierst Du.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    • Offizieller Beitrag

    Wenn du pausieren möchtest, das Skript aber evtl. zwischenzeitlich andere Aufgaben erfüllen soll, kannst du diesen Ansatz wählen:

    [autoit]

    $Start = False
    ;...
    ;...
    Case $msg = $button_Start_Stop
    If $Start Then
    ; Code ausführen, fortsetzen (am besten Funktionsaufruf)
    Else
    ; Code stoppen
    EndIf
    $Start = Not $Start
    ;...
    ;...

    [/autoit]
    • Offizieller Beitrag

    Hallo

    Probier mal das hier aus:

    Spoiler anzeigen
    [autoit]

    #include <A3LIPAddress.au3>
    Global $name = 1,$exitloop = False

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

    $gui = GUICreate("Network Manager", 230, 170)
    $ipi = _IPAddress_Create ($gui, 10, 15)
    _IPAddress_SetAddressStr ($ipi, @IPAddress1)
    $label1 = GUICtrlCreateLabel(" - ", 148, 19, 13, 13)
    $ipinput = GUICtrlCreateInput("255", 167, 15, 44, 20)
    $Updown = GUICtrlCreateUpdown(-1)
    GUICtrlSetLimit(-1, 255, "1")
    $button = GUICtrlCreateButton("Go", 130, 40, 80)
    $listview = GUICtrlCreateListView(" IP | Name ", 10, 70, 210, 90)
    $abcip = StringSplit(@IPAddress1, ".")
    $label2 = GUICtrlCreateLabel("Ready", 20, 45, 80)
    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()

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

    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit

    Case $msg = $button
    GUICtrlSetData($button,"Abbrechen")
    $ip2 = $abcip[1] & "." & $abcip[2] & "." & $abcip[3] & "."
    While 1
    For $x = $abcip[4] To GUICtrlRead($ipinput)
    $msg = GUIGetMsg()
    If $msg = $button Then $exitloop = True
    If $exitloop Then ExitLoop
    $ip = $ip2 & $x
    GUICtrlSetData($label2, $ip)
    $ping = Ping($ip, 50)
    If $name = 1 Then
    If $ip = @IPAddress1 Then
    $iptoname = @ComputerName & "(Your PC)|"
    EndIf
    Else
    $iptoname = ""
    EndIf
    If Not @error Then
    GUICtrlCreateListViewItem($ip & "|" & $iptoname, $listview)
    EndIf
    Next
    If $exitloop Then ExitLoop
    WEnd
    $exitloop = False
    GUICtrlSetData($button,"Go")
    GUICtrlSetData($label2,"Ready")
    EndSelect
    WEnd

    [/autoit]

    Btw: Alina hat recht, wenn dir jemand helfen kann, dann hilft er dir auch. Da brauchst du deine Beiträge nicht noch extra Pushen!

    Mfg Spider

  • hallo wollte das programm nur mal ausprobieren also kopiert und eingefügt.. bekomme aber diesen fehler

    C:\Dokumente und Einstellungen\Blackstore\Eigene Dateien\Bullz\ipchecker.au3 (1) : ==> Error opening the file.:
    #include <A3LIPAddress.au3>

    >Exit code: 1 Time: 0.208


    habe autoit typical installiert.... warum habe ich diese includedatei dann nicht ?

  • Damit will ich sagen dass es genau so ist! :tongue:


    Edit BugFix: Bitte in Zukunft sachfreie Posts vermeiden. Für OT gibts ein eigenes Forum.

  • thx für die antwort... werde das gleich mal testen

    aber eine frage drückt mich schon ewig..

    ist das absichtlich unter windows das man nicht alle rechner im netzwerk auf einmal gescheit sehen kann ?

    selbst innerhalb einer arbeitsgruppe funktioniert das bei mir daheim im netzwerk oft nicht das einzige was wirklich gut funktioniert ist die suche nach ip oder pc name....

    wenn ich mich an ein fremdes netzwerk ranhänge würde ich mit glück nur rechner in meiner arbeitsgruppe sehen.. die rechner in den anderen arbeitsgruppen würde ich nie finden...

    ist das absicht das nicht jeder depp im netzwerk auf fremden rechner spionieren kann wenn diese freigebene datein haben ?

    und kann es sein das der treatstarter vielleicht deswegen das programm geschrieben hat... den wnen er alle ips autoit meassig durchgeht dann hätte er sehr wohl eine gescheite liste welche rechner sich im netzwerk befinden...

    wäre echt nett wenn sich einer dazu äussern würde...

  • naja, ich weiß es nicht genau wie das läuft mit Arbeitsgruppe und MSHEIMNETZ etc.
    Ich habe einen Network Manager mit Autoit geschrieben, da ich oft LAN-Party gehe und sich oft Leute nicht auskennen mit saugen oder IP einstellen, nun wird alles viel einfacher!!!
    Ich kann dir ja mal bescheid geben wenn der NM fertig ist.

    MFG

  • Zitat

    Original von ChiefORZ
    naja, ich weiß es nicht genau wie das läuft mit Arbeitsgruppe und MSHEIMNETZ etc.
    Ich habe einen Network Manager mit Autoit geschrieben, da ich oft LAN-Party gehe und sich oft Leute nicht auskennen mit saugen oder IP einstellen, nun wird alles viel einfacher!!!
    Ich kann dir ja mal bescheid geben wenn der NM fertig ist.

    MFG

    das wäre echt tolle wenn du mir das programm schicken könntest wenns fertig ist... so was such ich schon ewig lol ^^ wuerde dir gerne helfen aber das ist ein paar stufen zu hoch für mich .. noch

    ach ja beim entpacken der Auto3Lib.exe schreibt mir der depp das ich mind die version 3.2.4.9 oder so haben muss ich hab 3.2.8.0 ... komische fehlermeldung habe ja eine höhere version..

  • so, jetzt kapiere ich mein skript nicht mehr! Ist : _TCPIpToName zum nachschauen wie der name des Computers ist wenn man _TCPIpToName($ip) macht!? und wenn ja welches include is das denn?

    • Offizieller Beitrag

    Welche Hilfe benutzt du denn?

    Spoiler anzeigen
    • Offizieller Beitrag

    Hi,

    welche Version?

    Direkt aus der Hilfe

    Spoiler anzeigen
    [autoit]


    ; Example 1
    #include <inet.au3>
    Dim $sResult, $sIp
    TCPStartup()
    $sIp = TCPNameToIP("hiddensoft.com")
    $sResult = _TCPIpToName ($sIp)
    If @error Then
    MsgBox(0, "_TCPIpToName()", "@error = " & @error & @LF & "@extended = " & @extended)
    Else
    MsgBox(0, "hiddensoft.com realy is:", $sResult)
    EndIf

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

    ; Example 2
    #include <array.au3>
    #include <inet.au3>
    Dim $aResult, $sIp
    TCPStartup()
    $sIp = _GetIP()
    $aResult = _TCPIpToName ($sIp, 1)
    If @error Then
    MsgBox(0, "_TCPIpToName()", "@error = " & @error & @LF & "@extended = " & @extended)
    Else
    _ArrayDisplay($aResult, "Local Hostname(s)")
    EndIf

    [/autoit]

    So long,

    Mega