Tab aktualisieren und Array neu einlesen lassen

  • Hi an alle,
    Ich habe eine kleine GUI gebastelt um unsere wichtigen Sever anpingen zu können. Klappt soweit auch alles sehr gut. Nun habe ich 2 Tabs, einmal die Übersicht und einmal die Konfiguration. Im letzteren Tab wird die TXT Datei eingelesen und soll über diese GUI aktualisiert werden sobald sie gespeichert ist. Das Array muss dann neu eingelesen und auf der Übersicht dementsprechend die Ansicht aktualisiert werden. Soweit die theorie :D
    Hänge irgendwie. Er weist die neue Werte immer der GUI und nicht den Tabs zu. Ist bestimmt nix großes, aber ich komm nicht drauf.

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    ;////////////////////////////////// Includes ///////////////////////////////////////
    #include <GUIConstants.au3>
    #include <file.au3>

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

    ;////////////////////////////////// Funktionen /////////////////////////////////////
    Func _query()
    Dim $IP
    _FileReadToArray( $File, $IP )
    ;///////////////////////////// Pingen der einzelnen Computer /////////////////////////////////
    _FileReadToArray( $File, $IP ) ;Alles in ein Array einlesen
    Dim $Zaehler = 50
    for $i=1 to $IP[0]
    $x = $Zaehler+30
    $Zaehler = $x
    $GUI_Main_Tab_Uebersicht_Query_IP = Ping( $IP[$i], 250 )
    GUICtrlSetData( $GUI_Main_Tab_Uebersicht_Progress,( $i*100 )/( $Array_Anzahl[0]-1 ) )
    If $GUI_Main_Tab_Uebersicht_Query_IP > 0 Then
    GUICtrlCreateIcon( @SystemDir & "\shell32.dll", 22, 140, $x, 15, 15 );ok
    Else
    GUICtrlCreateIcon( @SystemDir & "\shell32.dll", 200, 140, $x, 15, 15 );net da
    EndIf
    Next
    Sleep(1000)
    GUICtrlSetData ( $GUI_Main_Tab_Uebersicht_Progress,0 )
    $Zaehler = 50
    $IP = ""
    EndFunc

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

    Func _read_file()
    Dim $IP
    _FileReadToArray( $File, $IP )
    ;////////////////////////// Auslesen der Textdatei um alle IP's zubekommen //////////////////
    Dim $Zaehler = 50
    for $i=1 to $IP[0]
    $x = $Zaehler+30
    $Zaehler = $x
    GUICtrlCreateIcon( @SystemDir & "\shell32.dll", 19, 15, $x, 15, 15 )
    GUICtrlCreateLabel( $IP[$i], 50, $x )
    GUICtrlCreateLabel( "--------------------------------------", 50, $x+10 )
    Next
    $IP = ""
    EndFunc
    ;//////////////////////////////// Variablen ////////////////////////////////////////
    Dim $File = "ip.txt"
    Dim $Progressbar_Ubersicht = 0
    Dim $Array_Anzahl
    _FileReadToArray( $File , $Array_Anzahl )
    ;~ Dim $IP
    ;~ _FileReadToArray( $File, $IP )
    Dim $GUI_Main_Tab_Uebersicht_Progress

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

    ;//////////////////////////////// F5 als Aktualisierung zulassen //////////////////
    HotKeySet( "{F5}","_query" )

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

    ;/////////////////////////////// Main GUI erstellen ////////////////////////////////
    $GUI_Main = GUICreate( "Adminkonsole", 200,@DesktopHeight-60, @DesktopWidth-200, -1, $WS_POPUP )

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

    $GUI_Main_Btn_Minimize = GUICtrlCreateButton( " - ", 170, 5, 15, 15 )
    $GUI_Main_Btn_Exit = GUICtrlCreateButton( " x ", 185, 5, 15, 15 )
    $GUI_Main_Tab = GUICtrlCreateTab( 0,0, 200,@DesktopHeight-60 )
    $GUI_Main_Tabitem_Uebersicht = GUICtrlCreateTabitem ( "Übersicht" )
    _read_file()
    _query()
    $GUI_Main_Tab_Uebersicht_Progress = GUICtrlCreateProgress( 5, @DesktopHeight-150, 185, 10, $PBS_SMOOTH)
    $GUI_Main_Tab_Uebersicht_Btn_refresh = GUICtrlCreateButton( "Aktualisieren", 5, @DesktopHeight-100 )

    $GUI_Main_Tabitem_Konfig = GUICtrlCreateTabitem ( "Konfiguration" )
    $GUI_Main_Tab_Konfig_Edit_IP = GUICtrlCreateEdit(FileRead( $File ), 5, 30, 190, 700 )
    $GUI_Main_Tab_Konfig_Btn_Save = GUICtrlCreateButton( "Speichern", 5, 750)

    ;/////////////////////////////// Zeige Main Gui ////////////////////////////////////
    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_Main_Btn_Exit
    GUIDelete()
    Exit

    Case $GUI_Main_Btn_Minimize

    Case $GUI_Main_Tab_Konfig_Btn_Save
    FileOpen( $File, 2 )
    FileWrite( $File, GUICtrlRead( $GUI_Main_Tab_Konfig_Edit_IP ) )
    FileClose( $File )
    GUICtrlSetData( $GUI_Main_Tabitem_Uebersicht, _query() )
    GUICtrlSetData( $GUI_Main_Tabitem_Uebersicht, _read_file() )

    Case $GUI_Main_Tab_Uebersicht_Btn_refresh
    GUICtrlSetState( $GUI_Main_Tab_Uebersicht_Btn_refresh, $GUI_DISABLE )
    _query()
    GUICtrlSetState( $GUI_Main_Tab_Uebersicht_Btn_refresh, $GUI_ENABLE )
    EndSwitch


    Wend

    [/autoit]

    Ich hoffe es kann mir jemand helfen.
    Danke schonmal vorab.

    Gruß

  • Moin hessebou,

    wenn's dir nichts ausmacht, könntest du den ganzen Code posten damit ich das mal testen kann.
    Ist so ein wenig schwer vorzustellen ;) .

  • Moin,

    ist der ganze Code :D
    Fehlt nur eine TXT-Datei im gleichen Verzeichnis Names "ip.txt".

    Aber ich poste ihn noch mal ;)

    Spoiler anzeigen
    [autoit]


    ;////////////////////////////////// Includes ///////////////////////////////////////
    #include <GUIConstants.au3>
    #include <file.au3>

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

    ;////////////////////////////////// Funktionen /////////////////////////////////////
    Func _query()
    Dim $IP
    _FileReadToArray( $File, $IP )
    ;///////////////////////////// Pingen der einzelnen Computer /////////////////////////////////
    _FileReadToArray( $File, $IP ) ;Alles in ein Array einlesen
    Dim $Zaehler = 50
    for $i=1 to $IP[0]
    $x = $Zaehler+30
    $Zaehler = $x
    $GUI_Main_Tab_Uebersicht_Query_IP = Ping( $IP[$i], 250 )
    GUICtrlSetData( $GUI_Main_Tab_Uebersicht_Progress,( $i*100 )/( $Array_Anzahl[0]-1 ) )
    If $GUI_Main_Tab_Uebersicht_Query_IP > 0 Then
    GUICtrlCreateIcon( @SystemDir & "\shell32.dll", 22, 140, $x, 15, 15 );ok
    Else
    GUICtrlCreateIcon( @SystemDir & "\shell32.dll", 200, 140, $x, 15, 15 );net da
    EndIf
    Next
    Sleep(1000)
    GUICtrlSetData ( $GUI_Main_Tab_Uebersicht_Progress,0 )
    $Zaehler = 50
    $IP = ""
    EndFunc

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

    Func _read_file()
    Dim $IP
    _FileReadToArray( $File, $IP )
    ;////////////////////////// Auslesen der Textdatei um alle IP's zubekommen //////////////////
    Dim $Zaehler = 50
    for $i=1 to $IP[0]
    $x = $Zaehler+30
    $Zaehler = $x
    GUICtrlCreateIcon( @SystemDir & "\shell32.dll", 19, 15, $x, 15, 15 )
    GUICtrlCreateLabel( $IP[$i], 50, $x )
    GUICtrlCreateLabel( "--------------------------------------", 50, $x+10 )
    Next
    $IP = ""
    EndFunc
    ;//////////////////////////////// Variablen ////////////////////////////////////////
    Dim $File = "ip.txt"
    Dim $Progressbar_Ubersicht = 0
    Dim $Array_Anzahl
    _FileReadToArray( $File , $Array_Anzahl )
    ;~ Dim $IP
    ;~ _FileReadToArray( $File, $IP )
    Dim $GUI_Main_Tab_Uebersicht_Progress

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

    ;//////////////////////////////// F5 als Aktualisierung zulassen //////////////////
    HotKeySet( "{F5}","_query" )

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

    ;/////////////////////////////// Main GUI erstellen ////////////////////////////////
    $GUI_Main = GUICreate( "VHS - Adminkonsole", 200,@DesktopHeight-60, @DesktopWidth-200, -1, $WS_POPUP )

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

    $GUI_Main_Btn_Minimize = GUICtrlCreateButton( " - ", 170, 5, 15, 15 )
    $GUI_Main_Btn_Exit = GUICtrlCreateButton( " x ", 185, 5, 15, 15 )
    $GUI_Main_Tab = GUICtrlCreateTab( 0,0, 200,@DesktopHeight-60 )
    $GUI_Main_Tabitem_Uebersicht = GUICtrlCreateTabitem ( "Übersicht" )
    _read_file()
    _query()
    $GUI_Main_Tab_Uebersicht_Progress = GUICtrlCreateProgress( 5, @DesktopHeight-150, 185, 10, $PBS_SMOOTH)
    $GUI_Main_Tab_Uebersicht_Btn_refresh = GUICtrlCreateButton( "Aktualisieren", 5, @DesktopHeight-100 )

    $GUI_Main_Tabitem_Konfig = GUICtrlCreateTabitem ( "Konfiguration" )
    $GUI_Main_Tab_Konfig_Edit_IP = GUICtrlCreateEdit(FileRead( $File ), 5, 30, 190, 700 )
    $GUI_Main_Tab_Konfig_Btn_Save = GUICtrlCreateButton( "Speichern", 5, 750)

    ;/////////////////////////////// Zeige Main Gui ////////////////////////////////////
    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_Main_Btn_Exit
    GUIDelete()
    Exit

    Case $GUI_Main_Btn_Minimize

    Case $GUI_Main_Tab_Konfig_Btn_Save
    FileOpen( $File, 2 )
    FileWrite( $File, GUICtrlRead( $GUI_Main_Tab_Konfig_Edit_IP ) )
    FileClose( $File )
    GUICtrlSetData( $GUI_Main_Tabitem_Uebersicht, _query() )
    GUICtrlSetData( $GUI_Main_Tabitem_Uebersicht, _read_file() )

    Case $GUI_Main_Tab_Uebersicht_Btn_refresh
    GUICtrlSetState( $GUI_Main_Tab_Uebersicht_Btn_refresh, $GUI_DISABLE )
    _query()
    GUICtrlSetState( $GUI_Main_Tab_Uebersicht_Btn_refresh, $GUI_ENABLE )
    EndSwitch


    Wend

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Oscar
    Er will ja gerade das zur Laufzeit noch Computer hinzugefügt/gelöscht werden können.

    @hessebou
    Scheinbar gibt es keine explizite Möglichkeit ein Control auf einem Tab zu erstellen (frag mich wie er das überhaupt hinkriegt ?( ).
    Also denke ich es ist ein 'Bug' von AutoIt das er die Aktualisierung (Icon-Erstellung)mit auf die zweite Tabseite übernimmt.
    P.S. : Der Hinweis auf die fehlende Textdatei hätte schon gereicht ;)

  • Hab mir ehrlich gesagt nicht alles durchgelesen bzw. probiert - klingt aber so als könnte GUISwitch() hier weiterhelfen (in der deutschen Hilfe steht von diesem Zusatz nichts) da man damit ein Tab aktiv schalten kann so das Objekte darauf erstellt werden.

    So könnte es ungefähr aussehen:

    [autoit]


    GUISwitch($GUI_Main, $GUI_Main_Tabitem_Konfig)
    ;deine Control-Erstellungen auf dem Tab
    GUISwitch($GUI_Main)

    [/autoit]

    wenn ich das falsch verstanden haben sollte - vergiss es ganz schnell wieder.

  • Erstelle die Icons und Label gleich am Anfang, nicht erst in den Funktionen.
    In den Funktionen benutzt Du dann GUICtrlSetData bzw. GUICtrlSetImage zum ändern der Daten/Icons.

    Das Problem ist ja, ich möchte die TXT-Datei anpassen. Ich trage z.B. eine neue IP-Adresse auf dem Tab Konfigurieren ein und speichere diese. Dann möchte ich natürlich, dass die neue IP auch auf der Überischt erscheint. Dazu muss "nur" die GUI die Datei neueinlesen und gut wäre. DAs bekomme ich aber nicht hin irgendwie.

    • Offizieller Beitrag

    Dann solltest Du vorher mit GUISwitch($GUI_Main, $GUI_Main_Tabitem_Uebersicht) zu dem jeweiligen Tab wechseln. Dann werden die Icons dort erstellt.

    Aus der Hilfe:

    Remarks

    Many of the GUI specific functions work on the "current" window - this is usually the last window created with GUICreate. This function allows you to make another window "current". That's does not mean that the referenced window will become active. You have to use WinActivate.

    Using the tabitemID allow to create new control in the specified tabitem control. Don't forget to close tabitem definition GuiCtrlCreateTabItem("")

  • @hessebou
    In der Function '_query' vor der For-Schleife.
    Hab's probiert funzt aber irgendwie nicht... :(

  • @ JanSchmidt
    Das kann doch nicht so wild sein :D
    gut alternativ, könnte ich die Tabs weglassen und alles in eine GUI packen. Dann nur ein Button "Editieren" machen und darin die TXT in einer neue GUI öffnen lassen zum editieren. Ist halt nicht so Chic.

  • Ich hab's :thumbup:
    Ich Idiot hab einfach die falsche Variable benutzt :rolleyes:
    Also fügt mal
    GUISwitch( $GUI_Main, $GUI_Main_Tabitem_Uebersicht )
    ein und schon funzt es :D

  • @JanSchmidt:

    Sehr schön :D nur bei mir haut es nicht hin irgendwie.

    Spoiler anzeigen
    [autoit]


    ;////////////////////////////////// Includes ///////////////////////////////////////
    #include <GUIConstants.au3>
    #include <file.au3>

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

    ;////////////////////////////////// Funktionen /////////////////////////////////////
    Func _query()
    Dim $IP
    _FileReadToArray( $File, $IP )
    ;///////////////////////////// Pingen der einzelnen Computer /////////////////////////////////
    Dim $Zaehler = 50
    GUISwitch( $GUI_Main, $GUI_Main_Tabitem_Uebersicht )
    for $i=1 to $IP[0]
    $x = $Zaehler+30
    $Zaehler = $x
    $GUI_Main_Tab_Uebersicht_Query_IP = Ping( $IP[$i], 250 )
    GUICtrlSetData( $GUI_Main_Tab_Uebersicht_Progress,( $i*100 )/( $Array_Anzahl[0]-1 ) )
    If $GUI_Main_Tab_Uebersicht_Query_IP > 0 Then
    GUICtrlCreateIcon( @SystemDir & "\shell32.dll", 22, 140, $x, 15, 15 );ok
    Else
    GUICtrlCreateIcon( @SystemDir & "\shell32.dll", 200, 140, $x, 15, 15 );net da
    EndIf
    Next
    Sleep(1000)
    GUICtrlSetData ( $GUI_Main_Tab_Uebersicht_Progress,0 )
    $Zaehler = 50
    $IP = ""
    EndFunc

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

    Func _read_file()
    Dim $IP
    _FileReadToArray( $File, $IP )
    ;////////////////////////// Auslesen der Textdatei um alle IP's zubekommen //////////////////
    Dim $Zaehler = 50
    for $i=1 to $IP[0]
    $x = $Zaehler+30
    $Zaehler = $x
    GUICtrlCreateIcon( @SystemDir & "\shell32.dll", 19, 15, $x, 15, 15 )
    GUICtrlCreateLabel( $IP[$i], 50, $x )
    GUICtrlCreateLabel( "--------------------------------------", 50, $x+10 )
    Next
    $IP = ""
    EndFunc
    ;//////////////////////////////// Variablen ////////////////////////////////////////
    Dim $File = "ip.txt"
    Dim $Progressbar_Ubersicht = 0
    Dim $Array_Anzahl
    _FileReadToArray( $File , $Array_Anzahl )
    Dim $GUI_Main_Tab_Uebersicht_Progress

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

    ;//////////////////////////////// F5 als Aktualisierung zulassen //////////////////
    HotKeySet( "{F5}","_query" )

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

    ;/////////////////////////////// Main GUI erstellen ////////////////////////////////
    $GUI_Main = GUICreate( "VHS - Adminkonsole", 200,@DesktopHeight-60, @DesktopWidth-200, -1, $WS_POPUP )

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

    $GUI_Main_Btn_Minimize = GUICtrlCreateButton( " - ", 170, 5, 15, 15 )
    $GUI_Main_Btn_Exit = GUICtrlCreateButton( " x ", 185, 5, 15, 15 )
    $GUI_Main_Tab = GUICtrlCreateTab( 0,0, 200,@DesktopHeight-60 )
    $GUI_Main_Tabitem_Uebersicht = GUICtrlCreateTabitem ( "Übersicht" )
    _read_file()
    _query()
    $GUI_Main_Tab_Uebersicht_Progress = GUICtrlCreateProgress( 5, @DesktopHeight-150, 185, 10, $PBS_SMOOTH)
    $GUI_Main_Tab_Uebersicht_Btn_refresh = GUICtrlCreateButton( "Aktualisieren", 5, @DesktopHeight-100 )

    $GUI_Main_Tabitem_Konfig = GUICtrlCreateTabitem ( "Konfiguration" )
    $GUI_Main_Tab_Konfig_Edit_IP = GUICtrlCreateEdit(FileRead( $File ), 5, 30, 190, 700 )
    $GUI_Main_Tab_Konfig_Btn_Save = GUICtrlCreateButton( "Speichern", 5, 750)

    ;/////////////////////////////// Zeige Main Gui ////////////////////////////////////
    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_Main_Btn_Exit
    GUIDelete()
    Exit

    Case $GUI_Main_Btn_Minimize

    Case $GUI_Main_Tab_Konfig_Btn_Save
    GUICtrlSetState( $GUI_Main_Tab_Konfig_Btn_Save, $GUI_DISABLE )
    FileOpen( $File, 2 )
    FileWrite( $File, GUICtrlRead( $GUI_Main_Tab_Konfig_Edit_IP ) )
    FileClose( $File )
    GUICtrlSetData( $GUI_Main_Tabitem_Uebersicht, _query() )
    GUICtrlSetData( $GUI_Main_Tabitem_Uebersicht, _read_file() )
    GUICtrlSetState( $GUI_Main_Tab_Konfig_Btn_Save, $GUI_ENABLE )

    Case $GUI_Main_Tab_Uebersicht_Btn_refresh
    GUICtrlSetState( $GUI_Main_Tab_Uebersicht_Btn_refresh, $GUI_DISABLE )
    _query()
    GUICtrlSetState( $GUI_Main_Tab_Uebersicht_Btn_refresh, $GUI_ENABLE )
    EndSwitch


    Wend

    [/autoit]
    • Offizieller Beitrag

    @hessebou: Ich habe mal Dein Script etwas geändert:

    Spoiler anzeigen
    [autoit]


    ;////////////////////////////////// Includes ///////////////////////////////////////
    #include <GUIConstants.au3>
    #include <file.au3>

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

    ;////////////////////////////////// Funktionen /////////////////////////////////////
    Func _query()
    Dim $IP
    ;///////////////////////////// Pingen der einzelnen Computer /////////////////////////////////
    _FileReadToArray( $File, $IP ) ;Alles in ein Array einlesen
    Dim $Zaehler = 50
    for $i=1 to $IP[0]
    $x = $Zaehler+30
    $Zaehler = $x
    $GUI_Main_Tab_Uebersicht_Query_IP = Ping( $IP[$i], 250 )
    GUICtrlSetData( $GUI_Main_Tab_Uebersicht_Progress,( $i*100 )/( $Array_Anzahl[0]-1 ) )
    If $GUI_Main_Tab_Uebersicht_Query_IP > 0 Then
    GUICtrlSetImage($aIcon[$i], @SystemDir & "\shell32.dll", 22);ok
    Else
    GUICtrlSetImage($aIcon[$i], @SystemDir & "\shell32.dll", 200);net da
    EndIf
    Next
    Sleep(1000)
    GUICtrlSetData ( $GUI_Main_Tab_Uebersicht_Progress,0 )
    $Zaehler = 50
    $IP = ""
    EndFunc

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

    Func _read_file()
    Dim $IP
    _FileReadToArray( $File, $IP )
    ReDim $aIcon[$IP[0]+1]
    ;////////////////////////// Auslesen der Textdatei um alle IP's zubekommen //////////////////
    Dim $Zaehler = 50
    for $i=1 to $IP[0]
    $x = $Zaehler+30
    $Zaehler = $x
    GUISwitch($GUI_Main, $GUI_Main_Tabitem_Uebersicht)
    $aIcon[$i] = GUICtrlCreateIcon( @SystemDir & "\shell32.dll", 19, 15, $x, 15, 15 )
    GUICtrlCreateLabel( $IP[$i], 50, $x )
    GUICtrlCreateLabel( "--------------------------------------", 50, $x+10 )
    Next
    $IP = ""
    EndFunc
    ;//////////////////////////////// Variablen ////////////////////////////////////////
    Dim $File = "ip.txt", $aIcon[1]
    Dim $Progressbar_Ubersicht = 0
    Dim $Array_Anzahl
    _FileReadToArray( $File , $Array_Anzahl )
    ;~ Dim $IP
    ;~ _FileReadToArray( $File, $IP )
    Dim $GUI_Main_Tab_Uebersicht_Progress

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

    ;//////////////////////////////// F5 als Aktualisierung zulassen //////////////////
    HotKeySet( "{F5}","_query" )

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

    ;/////////////////////////////// Main GUI erstellen ////////////////////////////////
    $GUI_Main = GUICreate( "VHS - Adminkonsole", 200,@DesktopHeight-60, @DesktopWidth-200, -1, $WS_POPUP )

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

    $GUI_Main_Btn_Minimize = GUICtrlCreateButton( " - ", 170, 5, 15, 15 )
    $GUI_Main_Btn_Exit = GUICtrlCreateButton( " x ", 185, 5, 15, 15 )
    $GUI_Main_Tab = GUICtrlCreateTab( 0,0, 200,@DesktopHeight-60 )
    $GUI_Main_Tabitem_Uebersicht = GUICtrlCreateTabitem ( "Übersicht" )
    _read_file()
    _query()
    $GUI_Main_Tab_Uebersicht_Progress = GUICtrlCreateProgress( 5, @DesktopHeight-150, 185, 10, $PBS_SMOOTH)
    $GUI_Main_Tab_Uebersicht_Btn_refresh = GUICtrlCreateButton( "Aktualisieren", 5, @DesktopHeight-100 )
    GUICtrlCreateTabItem("")

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

    $GUI_Main_Tabitem_Konfig = GUICtrlCreateTabitem ( "Konfiguration" )
    $GUI_Main_Tab_Konfig_Edit_IP = GUICtrlCreateEdit(FileRead( $File ), 5, 30, 190, 700 )
    $GUI_Main_Tab_Konfig_Btn_Save = GUICtrlCreateButton( "Speichern", 5, 750)
    GUICtrlCreateTabItem("")

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

    ;/////////////////////////////// Zeige Main Gui ////////////////////////////////////
    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_Main_Btn_Exit
    GUIDelete()
    Exit

    Case $GUI_Main_Btn_Minimize

    Case $GUI_Main_Tab_Konfig_Btn_Save
    FileOpen( $File, 2 )
    FileWrite( $File, GUICtrlRead( $GUI_Main_Tab_Konfig_Edit_IP ) )
    FileClose( $File )
    _read_file()
    _query()

    Case $GUI_Main_Tab_Uebersicht_Btn_refresh
    GUICtrlSetState( $GUI_Main_Tab_Uebersicht_Btn_refresh, $GUI_DISABLE )
    _query()
    GUICtrlSetState( $GUI_Main_Tab_Uebersicht_Btn_refresh, $GUI_ENABLE )
    EndSwitch


    Wend

    [/autoit]
  • @hessebou
    Bei den Variablen noch
    Dim $GUI_Main_Tab_Uebersicht
    einfügen, dann müsste es funktionieren.
    Sorry hab ich vergessen zu sagen :S

  • @JanSchmidt:

    Wieder Danke :)
    Aber irgendwie passt da was noch nicht so ganz. Es sieht immer so aus wie im Bild. Kannst du mal deinen Quellcode posten? Ich bin voll am verzweifelen :S
    Heute steh ich echt irgendwie auf dem Schlauch...

    Dank dir

  • So hier mal das was bei mir jetzt funzt :

    Spoiler anzeigen
    [autoit]

    ;////////////////////////////////// Includes ///////////////////////////////////////
    #include <GUIConstants.au3>
    #include <file.au3>

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

    ;//////////////////////////////// Variablen ////////////////////////////////////////
    Dim $File = "ip.txt"
    Dim $Progressbar_Ubersicht = 0
    Dim $Array_Anzahl

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

    _FileReadToArray( $File, $Array_Anzahl )
    ;~ Dim $IP
    ;~ _FileReadToArray( $File, $IP )
    Dim $GUI_Main_Tab_Uebersicht
    Dim $GUI_Main_Tab_Uebersicht_Progress
    Dim $GUI_Main_Tab_Konfig_Edit_IP

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

    ;//////////////////////////////// F5 als Aktualisierung zulassen //////////////////
    HotKeySet( "{F5}","_query" )

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

    ;/////////////////////////////// Main GUI erstellen ////////////////////////////////
    $GUI_Main = GUICreate( "VHS - Adminkonsole", 200,@DesktopHeight-60, @DesktopWidth-200, -1, $WS_POPUP )

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

    $GUI_Main_Btn_Minimize = GUICtrlCreateButton( " - ", 170, 5, 15, 15 )
    $GUI_Main_Btn_Exit = GUICtrlCreateButton( " x ", 185, 5, 15, 15 )
    $GUI_Main_Tab = GUICtrlCreateTab( 0,0, 200,@DesktopHeight-60 )
    $GUI_Main_Tabitem_Uebersicht = GUICtrlCreateTabitem ( "Übersicht" )
    _read_file()
    _query()
    $GUI_Main_Tab_Uebersicht_Progress = GUICtrlCreateProgress( 5, @DesktopHeight-150, 185, 10, $PBS_SMOOTH)
    $GUI_Main_Tab_Uebersicht_Btn_refresh = GUICtrlCreateButton( "Aktualisieren", 5, @DesktopHeight-100 )

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

    $GUI_Main_Tabitem_Konfig = GUICtrlCreateTabitem ( "Konfiguration" )
    $GUI_Main_Tab_Konfig_Edit_IP = GUICtrlCreateEdit(FileRead( $File ), 5, 30, 190, 700 )
    $GUI_Main_Tab_Konfig_Btn_Save = GUICtrlCreateButton( "Speichern", 5, 750)

    ;/////////////////////////////// Zeige Main Gui ////////////////////////////////////
    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_Main_Btn_Exit
    GUIDelete()
    Exit

    Case $GUI_Main_Btn_Minimize

    Case $GUI_Main_Tab_Konfig_Btn_Save
    FileOpen( $File, 2 )
    FileWrite( $File, GUICtrlRead( $GUI_Main_Tab_Konfig_Edit_IP ) )
    FileClose( $File )
    GUICtrlSetData( $GUI_Main_Tabitem_Uebersicht, _query() )
    GUICtrlSetData( $GUI_Main_Tabitem_Uebersicht, _read_file() )

    Case $GUI_Main_Tab_Uebersicht_Btn_refresh
    GUICtrlSetState( $GUI_Main_Tab_Uebersicht_Btn_refresh, $GUI_DISABLE )
    _query()
    GUICtrlSetState( $GUI_Main_Tab_Uebersicht_Btn_refresh, $GUI_ENABLE )
    EndSwitch
    Wend

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

    ;////////////////////////////////// Funktionen /////////////////////////////////////
    Func _query()
    Dim $IP
    _FileReadToArray( $File, $IP )
    ;///////////////////////////// Pingen der einzelnen Computer /////////////////////////////////
    _FileReadToArray( $File, $IP ) ;Alles in ein Array einlesen
    Dim $Zaehler = 50
    $Result = GUISwitch( $GUI_Main, $GUI_Main_Tabitem_Uebersicht )
    If $Result > 0 Then
    MsgBox( 0, "Hat gefunzt", "" )
    Else
    MsgBox( 0, "Nix :(", "" )
    EndIf
    for $i=1 to $IP[0]
    $x = $Zaehler+30
    $Zaehler = $x
    $GUI_Main_Tab_Uebersicht_Query_IP = Ping( $IP[$i], 250 )
    GUICtrlSetData( $GUI_Main_Tab_Uebersicht_Progress,( $i*100 )/( $Array_Anzahl[0]-1 ) )
    If $GUI_Main_Tab_Uebersicht_Query_IP > 0 Then
    GUICtrlCreateIcon( @SystemDir & "\shell32.dll", 22, 140, $x, 15, 15 );ok
    Else
    GUICtrlCreateIcon( @SystemDir & "\shell32.dll", 200, 140, $x, 15, 15 );net da
    EndIf
    Next
    Sleep(1000)
    GUICtrlSetData ( $GUI_Main_Tab_Uebersicht_Progress,0 )
    $Zaehler = 50
    $IP = ""
    GUICtrlRead( $GUI_Main_Tab_Konfig_Edit_IP, 1 )
    EndFunc

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

    Func _read_file()
    Dim $IP
    _FileReadToArray( $File, $IP )
    ;////////////////////////// Auslesen der Textdatei um alle IP's zubekommen //////////////////
    Dim $Zaehler = 50
    for $i=1 to $IP[0]
    $x = $Zaehler+30
    $Zaehler = $x
    GUICtrlCreateIcon( @SystemDir & "\shell32.dll", 19, 15, $x, 15, 15 )
    GUICtrlCreateLabel( $IP[$i], 50, $x )
    GUICtrlCreateLabel( "--------------------------------------", 50, $x+10 )
    Next
    $IP = ""
    EndFunc

    [/autoit]

    Nich wundern hab's ein bisschen umgestellt ;)

  • @JanSchmidt

    Danke, funzt bei mir allerdings irgendwie nur teilweise. Er macht zwar die Aktualisierung und zeigt diese dann an, aber des Tab heißt dann 0 und deine Msgbox liefert immer des Ergebnis "Nix" zurück. Oh man, das kann doch nicht sein :(

  • Bau mal die MsgBox aus, war nur zum Test.
    Du meinst bei dir ist der Text des Tabs nachdem du auf 'Akualisieren' gedrückt hast '0' ? 8|

  • Nachdem ich einen Eintrag auf dem Tab Konfiguration gemacht habe und diesen mit dem Button "Speichern" speichere, ändert er kurze Zeit später die Bezeichnung des Tabs "Übersicht" auf "0" und dann sieht der Bildschirm so aus wie weiter oben im Bild schon gepostet. Alles sehr merkwürdig. Er macht zwar den neuen Eintrag, aber danach läuft es nicht mehr Rund. Das einfachste ist es die TXT Datei mit der Hand zu bearbeiten und die Gui immer wieder neu aufzurufen :D :rofl: