Consolen Ausgabe in der in GUI

  • Hallo @all,

    ich habe mal eine Frage und hoffe das mir geholfen werden kann :)

    Ich habe eine GUI gebaut um uns etwas das leben auf Arbeit zu erleichtern. In diesem Fall geht es darum inaktive Profile auf den Rechner im Netzwerk zu löschen. Im mom ist es so das wir das Händisch über die CMD Console mit dem Befehlt "delprof" machen. Es gibt eine Menge Sachen die wir über die Console machen, was ich jetzt aber alles in ein Tool zusammen fassen möchte. Nun zu meinem Problem.
    Wenn ich nun den Befehl "delprof" ausführe, ist es im mom so das die Console offen ist und sie mir untereindander anzeigt welches Profil gerade auf den Rechner den ich vorher bestimmt habe, gelsöcht wird, also:

    C:> Lösche Profil user1....
    C:> Lösche Profil user2....
    usw. bis die inaktiven Profile gelöscht wurden

    Das möchte ich auch gerne mit meinem Tool haben, allerdings bekomme ich das mit der Anzeige nicht hin.
    Ich der blauen Markierung sollte die Anzeige mit dem Status dann stehen wie gerade die Profile gelöscht werden, allerdings kommt dort keine anzeige :(

    Mein bisheriger Code:

    Spoiler anzeigen


    #include <GUIConstants.au3>
    #include <Constants.au3>

    #Region ### START Koda GUI section ### Form=c:\users\michach\desktop\sd-tools.kxf
    $Form1_1 = GUICreate("Form1", 568, 571, 616, 220)
    $Tab1 = GUICtrlCreateTab(8, 8, 553, 553)
    GUICtrlSetFont(-1, 10, 800, 0, "Arial")
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
    $TabSheet2 = GUICtrlCreateTabItem("User Profile")
    $Group1 = GUICtrlCreateGroup("Alle lokalen Profile löschen", 16, 48, 537, 97)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Label1 = GUICtrlCreateLabel("Hostname:", 49, 88, 69, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input1 = GUICtrlCreateInput("", 120, 86, 89, 24)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Button1 = GUICtrlCreateButton("Löschen", 223, 85, 73, 25, 0)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Profil zurücksetzen", 16, 177, 537, 113)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Label2 = GUICtrlCreateLabel("Username:", 22, 218, 70, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input2 = GUICtrlCreateInput("", 93, 216, 89, 24)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Button2 = GUICtrlCreateButton("Profil zurücksetzen", 206, 257, 145, 25, 0)
    $Label3 = GUICtrlCreateLabel("Homeserver:", 194, 217, 82, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input3 = GUICtrlCreateInput("", 276, 215, 89, 24)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label4 = GUICtrlCreateLabel("Hostname:", 378, 217, 69, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input4 = GUICtrlCreateInput("", 447, 215, 89, 24)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $LabelAusgabe = GUICtrlCreateLabel("", 17, 304, 540, 228)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $Label14 = GUICtrlCreateLabel("Version 1.0", 496, 536, 57, 17)
    $TabSheet3 = GUICtrlCreateTabItem("Tools")
    GUICtrlSetState(-1,$GUI_SHOW)
    $Group3 = GUICtrlCreateGroup("Diverse Tools", 16, 48, 537, 465)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Button3 = GUICtrlCreateButton("Display", 24, 152, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label5 = GUICtrlCreateLabel("( Hostname ) Öffnet die Bildschirm-Einstellungen auf dem Rechner des Benutzers", 144, 155, 384, 17)
    $Button4 = GUICtrlCreateButton("Einstellungen", 24, 202, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label6 = GUICtrlCreateLabel("( Hostname ) Öffnet die Einstellungen auf dem Rechner des Benutzers", 144, 205, 334, 17)
    $Button5 = GUICtrlCreateButton("Systemeig.", 24, 251, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label7 = GUICtrlCreateLabel("( Hostname ) Öffnet die Systemeigenschaften auf dem Rechner des Benutzers", 144, 254, 372, 17)
    $Button6 = GUICtrlCreateButton("Compverw.", 24, 301, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label8 = GUICtrlCreateLabel("( Hostname ) Öffnet die Computerverwaltung auf dem Rechner des Benutzers.", 144, 304, 371, 17)
    $Button7 = GUICtrlCreateButton("Quota", 24, 350, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label9 = GUICtrlCreateLabel("( Hostname ) Startet eine Quota Abfrage auf dem Host für den Benutzer.", 144, 353, 343, 17)
    $Label11 = GUICtrlCreateLabel("Hostname:", 58, 96, 69, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input5 = GUICtrlCreateInput("", 128, 94, 89, 24)
    $Label12 = GUICtrlCreateLabel("Benutzername:", 302, 96, 93, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input6 = GUICtrlCreateInput("", 396, 94, 89, 24)
    $Button9 = GUICtrlCreateButton("Shutdown", 25, 410, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    $Label13 = GUICtrlCreateLabel("( Hostname ) Startet den Rechner innerhalt 5 Sek. neu. ( Erzwungen )", 145, 413, 332, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Label10 = GUICtrlCreateLabel("Version 1.0", 497, 537, 57, 17)
    $TabSheet4 = GUICtrlCreateTabItem("Hilfe")
    GUICtrlCreateTabItem("")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    ;If FileExists("c:\Kopie") Then

    While 1

    ;Variablen
    $tab1hostname1 = GUICtrlRead ($Input1)
    $tab1username = GUICtrlRead ($Input2)
    $tab1homeserver = GUICtrlRead ($Input3)
    $tab1hostname2 = GUICtrlRead ($Input4)

    $tab2hostname = GUICtrlRead ($Input5)
    $tab2username = GUICtrlRead ($Input6)

    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    ;Case $Tab1

    ;###################################################################
    ;Alle lokalen Profile löschen
    ;###################################################################
    Case $Button1
    ;$tab1hostname1 = GUICtrlRead ($Input1)
    $cmdProfilLoeschen = Run(@COMSPEC & " /c delprof /c:\\" & $tab1hostname1 & " /i /q", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    While 1
    $ausgabe = StderrRead($cmdProfilLoeschen)
    If @error Then ExitLoop
    GUICtrlSetData ($LabelAusgabe,$ausgabe)
    Wend

    ;###################################################################
    ;Profil zurücksetzen
    ;###################################################################
    Case $Button2
    ;Lokales Profil löschen

    ;Server Profil kopieren
    If( $tab1hostname2 == "" Or $tab1username == "" Or $tab1homeserver == "") Then
    GUICtrlSetData ($LabelAusgabe,"Bitte alle Felder ausfüllen!")
    Else
    $kopieren = DirCopy("\\"&$tab1hostname2&"\profile\"&$tab1username, "\\"&$tab1hostname2&"\profile\"&$tab1username&".sic")
    GUICtrlSetData ($LabelAusgabe,"Alle Felder ausgefüllt.")
    EndIf

    ;###################################################################
    ;Display auf dem Host anzeigen
    ;###################################################################
    Case $Button3
    If( $tab2hostname == "") Then
    GUICtrlSetData ($LabelAusgabe,"Bitte den Hostnamen eingeben!")
    Else
    $cmdDisplay = Run(@COMSPEC & " /c psexec \\"&$tab2hostname&" -u ewenet\%username% -i -p "&$pwd&" c:\winnt\system32\control.exe desk.cpl")
    ;GUICtrlSetData ($LabelAusgabe,$cmdDisplay)
    EndIf

    ;###################################################################
    ;Führt settings.bat auf dem Host aus
    ;###################################################################
    Case $Button4
    If( $tab2hostname == "") Then
    GUICtrlSetData ($LabelAusgabe,"Bitte den Hostnamen eingeben!")
    Else
    $cmdEinstellungen = Run(@COMSPEC & " /c Psexec \\"&$tab2hostname&" -s c:\winnt\settings.bat")
    EndIf

    ;###################################################################
    ;Systemeigenschaften auf dem Host anzeigen
    ;###################################################################
    Case $Button5
    $cmdSystem = Run(@COMSPEC & " /c psexec \\"&$tab2hostname&" -u ewenet\%username% -i c:\winnt\system32\rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,0")

    ;###################################################################
    ;Computerverwaltung auf dem Host anzeigen
    ;###################################################################
    Case $Button6
    $cmdComputer = Run(@COMSPEC & " /c psexec \\"&$tab2hostname&" -u ewenet\%username% -i -w C:\WINNT\system32 C:\WINNT\system32\mmc.exe C:\WINNT\system32\compmgmt.msc")

    ;###################################################################
    ;Quota des Benutzers abfragen
    ;###################################################################
    Case $Button7
    ;$cmdQuota = Run(@COMSPEC & " /c Psexec \\"&$tab2hostname&" -s c:\winnt\settings.bat >NUL)

    EndSwitch
    WEnd

    ;InetGet - Lädt eine Datei aus dem Internet

    Der Code ist noch in bearbeitung, wichtig ist der Teil mit "Alle lokalen Profile löschen". Die Variable "$LabelAusgabe" ist das Label wo man die blaue Umrandung auf dem Screen sehen kann, da sollte die Ausgabe erfolgen.

  • Ich würde ein Edit Control nehmen und nicht ein Label Control. Dann hast du noch einen Fehler im Lesen des CMD Outputs gehabt:

    Spoiler anzeigen
    [autoit]


    #include <Constants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Global $pwd
    #region ### START Koda GUI section ### Form=c:\users\michach\desktop\sd-tools.kxf
    $Form1_1 = GUICreate("Form1", 568, 571)
    $Tab1 = GUICtrlCreateTab(8, 8, 553, 553)
    GUICtrlSetFont(-1, 10, 800, 0, "Arial")
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
    $TabSheet2 = GUICtrlCreateTabItem("User Profile")
    $Group1 = GUICtrlCreateGroup("Alle lokalen Profile löschen", 16, 48, 537, 97)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Label1 = GUICtrlCreateLabel("Hostname:", 49, 88, 69, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input1 = GUICtrlCreateInput("", 120, 86, 89, 24)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Button1 = GUICtrlCreateButton("Löschen", 223, 85, 73, 25, 0)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Profil zurücksetzen", 16, 177, 537, 113)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Label2 = GUICtrlCreateLabel("Username:", 22, 218, 70, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input2 = GUICtrlCreateInput("", 93, 216, 89, 24)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Button2 = GUICtrlCreateButton("Profil zurücksetzen", 206, 257, 145, 25, 0)
    $Label3 = GUICtrlCreateLabel("Homeserver:", 194, 217, 82, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input3 = GUICtrlCreateInput("", 276, 215, 89, 24)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label4 = GUICtrlCreateLabel("Hostname:", 378, 217, 69, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input4 = GUICtrlCreateInput("", 447, 215, 89, 24)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    ;~ $LabelAusgabe = GUICtrlCreateLabel("", 17, 304, 540, 22)
    $LabelAusgabe = GUICtrlCreateEdit("", 17, 304, 540, 225, $ES_AUTOVSCROLL + $WS_VSCROLL)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $Label14 = GUICtrlCreateLabel("Version 1.0", 496, 536, 57, 17)
    $TabSheet3 = GUICtrlCreateTabItem("Tools")
    GUICtrlSetState(-1, $GUI_SHOW)
    $Group3 = GUICtrlCreateGroup("Diverse Tools", 16, 48, 537, 465)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Button3 = GUICtrlCreateButton("Display", 24, 152, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label5 = GUICtrlCreateLabel("( Hostname ) Öffnet die Bildschirm-Einstellungen auf dem Rechner des Benutzers", 144, 155, 384, 17)
    $Button4 = GUICtrlCreateButton("Einstellungen", 24, 202, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label6 = GUICtrlCreateLabel("( Hostname ) Öffnet die Einstellungen auf dem Rechner des Benutzers", 144, 205, 334, 17)
    $Button5 = GUICtrlCreateButton("Systemeig.", 24, 251, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label7 = GUICtrlCreateLabel("( Hostname ) Öffnet die Systemeigenschaften auf dem Rechner des Benutzers", 144, 254, 372, 17)
    $Button6 = GUICtrlCreateButton("Compverw.", 24, 301, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label8 = GUICtrlCreateLabel("( Hostname ) Öffnet die Computerverwaltung auf dem Rechner des Benutzers.", 144, 304, 371, 17)
    $Button7 = GUICtrlCreateButton("Quota", 24, 350, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label9 = GUICtrlCreateLabel("( Hostname ) Startet eine Quota Abfrage auf dem Host für den Benutzer.", 144, 353, 343, 17)
    $Label11 = GUICtrlCreateLabel("Hostname:", 58, 96, 69, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input5 = GUICtrlCreateInput("", 128, 94, 89, 24)
    $Label12 = GUICtrlCreateLabel("Benutzername:", 302, 96, 93, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input6 = GUICtrlCreateInput("", 396, 94, 89, 24)
    $Button9 = GUICtrlCreateButton("Shutdown", 25, 410, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    $Label13 = GUICtrlCreateLabel("( Hostname ) Startet den Rechner innerhalt 5 Sek. neu. ( Erzwungen )", 145, 413, 332, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Label10 = GUICtrlCreateLabel("Version 1.0", 497, 537, 57, 17)
    $TabSheet4 = GUICtrlCreateTabItem("Hilfe")
    GUICtrlCreateTabItem("")
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

    ;If FileExists("c:\Kopie") Then

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

    While 1

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

    ;Variablen
    $tab1hostname1 = GUICtrlRead($Input1)
    $tab1username = GUICtrlRead($Input2)
    $tab1homeserver = GUICtrlRead($Input3)
    $tab1hostname2 = GUICtrlRead($Input4)

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

    $tab2hostname = GUICtrlRead($Input5)
    $tab2username = GUICtrlRead($Input6)

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

    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    ;Case $Tab1

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

    ;###################################################################
    ;Alle lokalen Profile löschen
    ;###################################################################
    Case $Button1
    ConsoleWrite("huhu")
    ;$tab1hostname1 = GUICtrlRead ($Input1)
    $cmdProfilLoeschen = Run(@ComSpec & " /c dir c:\", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    ;~ $cmdProfilLoeschen = Run(@ComSpec & " /c delprof /c:\\" & $tab1hostname1 & " /i /q", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    While 1
    $ausgabe = StdoutRead($cmdProfilLoeschen)
    If @error Then ExitLoop
    GUICtrlSetData($LabelAusgabe, $ausgabe)
    WEnd

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

    ;###################################################################
    ;Profil zurücksetzen
    ;###################################################################
    Case $Button2
    ;Lokales Profil löschen

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

    ;Server Profil kopieren
    If ($tab1hostname2 == "" Or $tab1username == "" Or $tab1homeserver == "") Then
    GUICtrlSetData($LabelAusgabe, "Bitte alle Felder ausfüllen!")
    Else
    $kopieren = DirCopy("\\" & $tab1hostname2 & "\profile\" & $tab1username, "\\" & $tab1hostname2 & "\profile\" & $tab1username & ".sic")
    GUICtrlSetData($LabelAusgabe, "Alle Felder ausgefüllt.")
    EndIf

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

    ;###################################################################
    ;Display auf dem Host anzeigen
    ;###################################################################
    Case $Button3
    If ($tab2hostname == "") Then
    GUICtrlSetData($LabelAusgabe, "Bitte den Hostnamen eingeben!")
    Else
    $cmdDisplay = Run(@ComSpec & " /c psexec \\" & $tab2hostname & " -u ewenet\%username% -i -p " & $pwd & " c:\winnt\system32\control.exe desk.cpl")
    ;GUICtrlSetData ($LabelAusgabe,$cmdDisplay)
    EndIf

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

    ;###################################################################
    ;Führt settings.bat auf dem Host aus
    ;###################################################################
    Case $Button4
    If ($tab2hostname == "") Then
    GUICtrlSetData($LabelAusgabe, "Bitte den Hostnamen eingeben!")
    Else
    $cmdEinstellungen = Run(@ComSpec & " /c Psexec \\" & $tab2hostname & " -s c:\winnt\settings.bat")
    EndIf

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

    ;###################################################################
    ;Systemeigenschaften auf dem Host anzeigen
    ;###################################################################
    Case $Button5
    $cmdSystem = Run(@ComSpec & " /c psexec \\" & $tab2hostname & " -u ewenet\%username% -i c:\winnt\system32\rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,0")

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

    ;###################################################################
    ;Computerverwaltung auf dem Host anzeigen
    ;###################################################################
    Case $Button6
    $cmdComputer = Run(@ComSpec & " /c psexec \\" & $tab2hostname & " -u ewenet\%username% -i -w C:\WINNT\system32 C:\WINNT\system32\mmc.exe C:\WINNT\system32\compmgmt.msc")

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

    ;###################################################################
    ;Quota des Benutzers abfragen
    ;###################################################################
    Case $Button7
    ;$cmdQuota = Run(@COMSPEC & " /c Psexec \\"&$tab2hostname&" -s c:\winnt\settings.bat >NUL)

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

    EndSwitch
    WEnd

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

    ;InetGet - Lädt eine Datei aus dem Internet

    [/autoit]

    Wenn du auf Löschen klickst, wird dir c:\ hier ausgeführt zwecks Demo! ;)

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Hi,

    vielen dank für die Hilfe, Feld habe ich jetzt in ein Edit Control Feld geändert, wenn ich jetzt kein Hostnamen eingeben, kommt in dem Feld die Meldung:
    "Bitte den Hostnamen eingeben!".

    Wenn ich das mache, sollte jetzt eigentlich in diesem Feld sehen wie er ein Profil nach dem anderen löscht, so wäre es in der CMD normalerweise, aber es passiert leider nicht.
    Das Feld bleibt lehr, es sieht nur so aus als wenn der Courser wärend des Prozesses flakern würde, die Profile werden aber gelöscht, das funktioniert.

    Hier nochmal der Ausschnitt von dem Code:

    Spoiler anzeigen
    [autoit]


    Case $Button1
    ConsoleWrite("Consoleneingabe")

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

    If( $tab1hostname1 == "") Then
    GUICtrlSetData ($LabelAusgabe,"Bitte den Hostnamen eingeben!")
    Else
    ;$cmdProfilLoeschen = Run(@ComSpec & " /c dir c:\", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    $cmdProfilLoeschen = Run(@ComSpec & " /c delprof /c:\\" & $tab1hostname1 & " /i /q", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    While 1
    $ausgabe = StdoutRead($cmdProfilLoeschen)
    If @error Then ExitLoop
    GUICtrlSetData($LabelAusgabe, $ausgabe)
    WEnd
    EndIf

    [/autoit]

    Habt ihr da villeicht noch einen Tipp was da falsch sein könnte ? Das mit dem DIR funktionierte mit dem Label soweit ich mich erinnern kann, mit dem Edit Fenster wird es nur ein milisekunde eingeblendet und verschwindet dann wieder.

    Einmal editiert, zuletzt von michach (8. April 2011 um 08:21)

  • ersetze mal diese Zeile

    [autoit]

    GUICtrlSetData($LabelAusgabe, $ausgabe)

    [/autoit]


    mit dieser Zeile

    [autoit]

    GUICtrlSetData($LabelAusgabe, $ausgabe,1)

    [/autoit]


    Damit wird der vorherige Inhalt des Edit-Controls nicht gelöscht.
    Musst vielleicht noch jeweils ein @CRLF dazwischen setzen

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Hi,

    ok, soweit funktioniert es, vielen dank nochmal. Was aber vielleicht besser wäre, wäre wenn die Anzeige sich immer nach der löschung eines Profils aktualisiert, nicht erst wenn sie fertig ist. Im mom ist es so das das Fenster weiß bleibt, bis er fertig ist mit der löschung der Profile, dann wird der Status angezeigt, siehe Screen, habe ich vielleicht die Schleife noch etwas falsch ?
    Wenn er fertig ist, passiert aber auch nicht, also kommt auch nicht c:> oder so am Ende, daher ist man als Benutzer nicht 100% sicher ob er jetzt fertig ist. Kann man dann noch irgenwas einbauen das dann vielleicht am Ende eine Meldung wie "Löschen der Profile ist fertig" oder so ?

    Gruß
    Micha

    Nachtrag: hatte den Screen vergessen :)

  • kannst du die consolen funktion nicht ein einer schleife laufen lassen ?
    damit würde sich das fenster immer von alleine updaten ;)

  • ersetze mal deinen Code an der entsprechenden Stelle durch meinen ;)

    Die Ausgabe iaus der Cmd-Console laggt immer einwenig ...

    [autoit]

    ;###################################################################
    ;Alle lokalen Profile löschen
    ;###################################################################
    Case $Button1
    ConsoleWrite("huhu")
    ;$tab1hostname1 = GUICtrlRead ($Input1)
    $cmdProfilLoeschen = Run(@ComSpec & " /c dir c:\", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    ;~ $cmdProfilLoeschen = Run(@ComSpec & " /c delprof /c:\\" & $tab1hostname1 & " /i /q", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    While 1
    $ausgabe = StdoutRead($cmdProfilLoeschen)
    Sleep(100)
    If $ausgabe <> "" Then ExitLoop
    WEnd
    GUICtrlSetData($LabelAusgabe, $ausgabe)

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • also normalerweise lautet der Befehl:

    delprof /c:\\%1 /i /q

    wenn ich den ausführe, wird ein Profil nach dem anderen gelöscht und mir nacheinander angezeigt, und das wollte ich dann sozusagen live in der GUI sehen.
    Wenn das nicht geht, würde mir reichen wenn ich am Ende halt eine Meldung bekomme das das Löschen fertig ist, wenn er nicht mehr macht.

    Edit:
    Gerade den Beitrag von Schnuffel gesehen, werde das mal testen, danke :)

  • Das gleiche Problem, es löscht die Inaktiven Profile, und erst wenn er fertig ist, zweigt er mir das Ergebnis an. Das blöde ist das es manchmal sehr lange dauern kann bis etwas angezeigt wird, kommt auf die Menge und Größe der Profile an, kann locker bis 5 Minuten und länger dauern. Der Anwender sieht so nicht ob etwas passiert.
    Im normal fall würde er aber nach jedem gelöschten Profil ein eZeile mit dem [OK] bekommen.

    Habe das jetzt so:

    Spoiler anzeigen
    [autoit]


    Case $Button1
    ConsoleWrite("Consoleneingabe")

    If( $tab1hostname1 == "") Then
    GUICtrlSetData ($LabelAusgabe,"Bitte den Hostnamen eingeben!")
    Else
    ;$cmdProfilLoeschen = Run(@ComSpec & " /c dir c:\", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    $cmdProfilLoeschen = Run(@ComSpec & " /c delprof /c:\\" & $tab1hostname1 & " /i /q", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    While 1
    $ausgabe = StdoutRead($cmdProfilLoeschen)
    Sleep(100)
    If $ausgabe <> "" Then ExitLoop
    WEnd
    GUICtrlSetData($LabelAusgabe, $ausgabe)
    EndIf

    [/autoit]
  • dann setze einfach nach der While-Schleife noch ein GuiCtrlSetData hinterher.
    Wenn die Schleife durch ist sollten alle Profile weg sein.
    Überprüft ist das damit natürlich nicht

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • OK, ich denke ich werde da mit Progress Bar arbeiten, so sieht der Anwender wenigstens das irgendwas passiert, bis am Ende dann die Zusammenfassung angezeigt wird :)

    Habt ihr denn eine Idee wie ich die denn am besten integrieren kann, die Werte werden ja aus der Console ausgelesen, solange muß die Progressbar ja etwas machen, entweder von 0 auf 100% gehen, also 100% = Fertig, wobei ich hier ja keinen Wert habe da ich ja nicht weiss wie lange er für die Profile benötigt, bzw wie viel Profil er auf den Rechner löschen wird.
    Oder eine die immer hin und her läuft, bis er fertig ist.

    Was wäre da besser, und welchen Wert sollte ich am besten nehmen?

    Ich dachte mir das wenn dich die mit hin und herr laufen nehme, diese sich dann beendet oder ausbelndet wenn GUICtrlSetData die Ausgabe liefert, nur ist die Ausgabe ja schon in der Schleife = 1, oder ?

  • so, einen hab ich noch.
    Warum denn die Anzeige der Console unbedingt anzeigen. Sie dient doch eigentlich nur als Trigger.
    Ausser Du möchtest explizit den Inhalt darstellen.
    Dann wird das ganze etwas aufwendiger wenn das zur Laufzeit der Console geschehen soll.
    Ansonsten versuch das doch mal so...

    Spoiler anzeigen
    [autoit]

    #include <Constants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Global $pwd
    #region ### START Koda GUI section ### Form=c:\users\michach\desktop\sd-tools.kxf
    $Form1_1 = GUICreate("Form1", 568, 571)
    $Tab1 = GUICtrlCreateTab(8, 8, 553, 553)
    GUICtrlSetFont(-1, 10, 800, 0, "Arial")
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
    $TabSheet2 = GUICtrlCreateTabItem("User Profile")
    $Group1 = GUICtrlCreateGroup("Alle lokalen Profile löschen", 16, 48, 537, 97)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Label1 = GUICtrlCreateLabel("Hostname:", 49, 88, 69, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input1 = GUICtrlCreateInput("", 120, 86, 89, 24)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Button1 = GUICtrlCreateButton("Löschen", 223, 85, 73, 25, 0)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Profil zurücksetzen", 16, 177, 537, 113)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Label2 = GUICtrlCreateLabel("Username:", 22, 218, 70, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input2 = GUICtrlCreateInput("", 93, 216, 89, 24)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Button2 = GUICtrlCreateButton("Profil zurücksetzen", 206, 257, 145, 25, 0)
    $Label3 = GUICtrlCreateLabel("Homeserver:", 194, 217, 82, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input3 = GUICtrlCreateInput("", 276, 215, 89, 24)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label4 = GUICtrlCreateLabel("Hostname:", 378, 217, 69, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input4 = GUICtrlCreateInput("", 447, 215, 89, 24)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    ;~ $LabelAusgabe = GUICtrlCreateLabel("", 17, 304, 540, 22)
    $LabelAusgabe = GUICtrlCreateEdit("", 17, 304, 540, 225, $ES_AUTOVSCROLL + $WS_VSCROLL)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $Label14 = GUICtrlCreateLabel("Version 1.0", 496, 536, 57, 17)
    $TabSheet3 = GUICtrlCreateTabItem("Tools")
    GUICtrlSetState(-1, $GUI_SHOW)
    $Group3 = GUICtrlCreateGroup("Diverse Tools", 16, 48, 537, 465)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Button3 = GUICtrlCreateButton("Display", 24, 152, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label5 = GUICtrlCreateLabel("( Hostname ) Öffnet die Bildschirm-Einstellungen auf dem Rechner des Benutzers", 144, 155, 384, 17)
    $Button4 = GUICtrlCreateButton("Einstellungen", 24, 202, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label6 = GUICtrlCreateLabel("( Hostname ) Öffnet die Einstellungen auf dem Rechner des Benutzers", 144, 205, 334, 17)
    $Button5 = GUICtrlCreateButton("Systemeig.", 24, 251, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label7 = GUICtrlCreateLabel("( Hostname ) Öffnet die Systemeigenschaften auf dem Rechner des Benutzers", 144, 254, 372, 17)
    $Button6 = GUICtrlCreateButton("Compverw.", 24, 301, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label8 = GUICtrlCreateLabel("( Hostname ) Öffnet die Computerverwaltung auf dem Rechner des Benutzers.", 144, 304, 371, 17)
    $Button7 = GUICtrlCreateButton("Quota", 24, 350, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label9 = GUICtrlCreateLabel("( Hostname ) Startet eine Quota Abfrage auf dem Host für den Benutzer.", 144, 353, 343, 17)
    $Label11 = GUICtrlCreateLabel("Hostname:", 58, 96, 69, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input5 = GUICtrlCreateInput("", 128, 94, 89, 24)
    $Label12 = GUICtrlCreateLabel("Benutzername:", 302, 96, 93, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input6 = GUICtrlCreateInput("", 396, 94, 89, 24)
    $Button9 = GUICtrlCreateButton("Shutdown", 25, 410, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    $Label13 = GUICtrlCreateLabel("( Hostname ) Startet den Rechner innerhalt 5 Sek. neu. ( Erzwungen )", 145, 413, 332, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Label10 = GUICtrlCreateLabel("Version 1.0", 497, 537, 57, 17)
    $TabSheet4 = GUICtrlCreateTabItem("Hilfe")
    GUICtrlCreateTabItem("")
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

    ;If FileExists("c:\Kopie") Then

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

    While 1

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

    ;Variablen
    $tab1hostname1 = GUICtrlRead($Input1)
    $tab1username = GUICtrlRead($Input2)
    $tab1homeserver = GUICtrlRead($Input3)
    $tab1hostname2 = GUICtrlRead($Input4)

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

    $tab2hostname = GUICtrlRead($Input5)
    $tab2username = GUICtrlRead($Input6)

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

    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    ;Case $Tab1

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

    ;###################################################################
    ;Alle lokalen Profile löschen
    ;###################################################################
    Case $Button1
    ConsoleWrite("huhu")
    ;$tab1hostname1 = GUICtrlRead ($Input1)
    $cmdProfilLoeschen = Run(@ComSpec & " /c dir c:\", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    ;~ $cmdProfilLoeschen = Run(@ComSpec & " /c delprof /c:\\" & $tab1hostname1 & " /i /q", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    Local $fortschritt
    While 1
    $fortschritt &= '='
    If StringLen($fortschritt) > 20 Then $fortschritt = '='
    Sleep(100)
    $ausgabe = StdoutRead($cmdProfilLoeschen)
    If @error Then ExitLoop
    GUICtrlSetData($LabelAusgabe, $fortschritt)
    WEnd
    GUICtrlSetData($LabelAusgabe, @CRLF & 'Alle Profile gelöscht.',1)
    ;###################################################################
    ;Profil zurücksetzen
    ;###################################################################
    Case $Button2
    ;Lokales Profil löschen

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

    ;Server Profil kopieren
    If ($tab1hostname2 == "" Or $tab1username == "" Or $tab1homeserver == "") Then
    GUICtrlSetData($LabelAusgabe, "Bitte alle Felder ausfüllen!")
    Else
    $kopieren = DirCopy("\\" & $tab1hostname2 & "\profile\" & $tab1username, "\\" & $tab1hostname2 & "\profile\" & $tab1username & ".sic")
    GUICtrlSetData($LabelAusgabe, "Alle Felder ausgefüllt.")
    EndIf

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

    ;###################################################################
    ;Display auf dem Host anzeigen
    ;###################################################################
    Case $Button3
    If ($tab2hostname == "") Then
    GUICtrlSetData($LabelAusgabe, "Bitte den Hostnamen eingeben!")
    Else
    $cmdDisplay = Run(@ComSpec & " /c psexec \\" & $tab2hostname & " -u ewenet\%username% -i -p " & $pwd & " c:\winnt\system32\control.exe desk.cpl")
    ;GUICtrlSetData ($LabelAusgabe,$cmdDisplay)
    EndIf

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

    ;###################################################################
    ;Führt settings.bat auf dem Host aus
    ;###################################################################
    Case $Button4
    If ($tab2hostname == "") Then
    GUICtrlSetData($LabelAusgabe, "Bitte den Hostnamen eingeben!")
    Else
    $cmdEinstellungen = Run(@ComSpec & " /c Psexec \\" & $tab2hostname & " -s c:\winnt\settings.bat")
    EndIf

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

    ;###################################################################
    ;Systemeigenschaften auf dem Host anzeigen
    ;###################################################################
    Case $Button5
    $cmdSystem = Run(@ComSpec & " /c psexec \\" & $tab2hostname & " -u ewenet\%username% -i c:\winnt\system32\rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,0")

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

    ;###################################################################
    ;Computerverwaltung auf dem Host anzeigen
    ;###################################################################
    Case $Button6
    $cmdComputer = Run(@ComSpec & " /c psexec \\" & $tab2hostname & " -u ewenet\%username% -i -w C:\WINNT\system32 C:\WINNT\system32\mmc.exe C:\WINNT\system32\compmgmt.msc")

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

    ;###################################################################
    ;Quota des Benutzers abfragen
    ;###################################################################
    Case $Button7
    ;$cmdQuota = Run(@COMSPEC & " /c Psexec \\"&$tab2hostname&" -s c:\winnt\settings.bat >NUL)

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

    EndSwitch
    WEnd

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

    ;InetGet - Lädt eine Datei aus dem Internet

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Das funzt bei mir eigentlich ganz gut, wobei ich dein delprof nicht testen kann!

    Test.cmd in C:\Temp mit folgendem Inhalt anlegen:

    Und hier dein Code:

    Spoiler anzeigen
    [autoit]


    #include <Constants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Global $pwd
    #region ### START Koda GUI section ### Form=c:\users\michach\desktop\sd-tools.kxf
    $Form1_1 = GUICreate("Form1", 568, 571)
    $Tab1 = GUICtrlCreateTab(8, 8, 553, 553)
    GUICtrlSetFont(-1, 10, 800, 0, "Arial")
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
    $TabSheet2 = GUICtrlCreateTabItem("User Profile")
    $Group1 = GUICtrlCreateGroup("Alle lokalen Profile löschen", 16, 48, 537, 97)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Label1 = GUICtrlCreateLabel("Hostname:", 49, 88, 69, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input1 = GUICtrlCreateInput("", 120, 86, 89, 24)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Button1 = GUICtrlCreateButton("Löschen", 223, 85, 73, 25, 0)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Profil zurücksetzen", 16, 177, 537, 113)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Label2 = GUICtrlCreateLabel("Username:", 22, 218, 70, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input2 = GUICtrlCreateInput("", 93, 216, 89, 24)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Button2 = GUICtrlCreateButton("Profil zurücksetzen", 206, 257, 145, 25, 0)
    $Label3 = GUICtrlCreateLabel("Homeserver:", 194, 217, 82, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input3 = GUICtrlCreateInput("", 276, 215, 89, 24)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label4 = GUICtrlCreateLabel("Hostname:", 378, 217, 69, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input4 = GUICtrlCreateInput("", 447, 215, 89, 24)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    ;~ $LabelAusgabe = GUICtrlCreateLabel("", 17, 304, 540, 22)
    $LabelAusgabe = GUICtrlCreateEdit("", 17, 304, 540, 225, $ES_AUTOVSCROLL + $WS_VSCROLL)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $Label14 = GUICtrlCreateLabel("Version 1.0", 496, 536, 57, 17)
    $TabSheet3 = GUICtrlCreateTabItem("Tools")
    GUICtrlSetState(-1, $GUI_SHOW)
    $Group3 = GUICtrlCreateGroup("Diverse Tools", 16, 48, 537, 465)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Button3 = GUICtrlCreateButton("Display", 24, 152, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label5 = GUICtrlCreateLabel("( Hostname ) Öffnet die Bildschirm-Einstellungen auf dem Rechner des Benutzers", 144, 155, 384, 17)
    $Button4 = GUICtrlCreateButton("Einstellungen", 24, 202, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label6 = GUICtrlCreateLabel("( Hostname ) Öffnet die Einstellungen auf dem Rechner des Benutzers", 144, 205, 334, 17)
    $Button5 = GUICtrlCreateButton("Systemeig.", 24, 251, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label7 = GUICtrlCreateLabel("( Hostname ) Öffnet die Systemeigenschaften auf dem Rechner des Benutzers", 144, 254, 372, 17)
    $Button6 = GUICtrlCreateButton("Compverw.", 24, 301, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label8 = GUICtrlCreateLabel("( Hostname ) Öffnet die Computerverwaltung auf dem Rechner des Benutzers.", 144, 304, 371, 17)
    $Button7 = GUICtrlCreateButton("Quota", 24, 350, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Label9 = GUICtrlCreateLabel("( Hostname ) Startet eine Quota Abfrage auf dem Host für den Benutzer.", 144, 353, 343, 17)
    $Label11 = GUICtrlCreateLabel("Hostname:", 58, 96, 69, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input5 = GUICtrlCreateInput("", 128, 94, 89, 24)
    $Label12 = GUICtrlCreateLabel("Benutzername:", 302, 96, 93, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input6 = GUICtrlCreateInput("", 396, 94, 89, 24)
    $Button9 = GUICtrlCreateButton("Shutdown", 25, 410, 105, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    $Label13 = GUICtrlCreateLabel("( Hostname ) Startet den Rechner innerhalt 5 Sek. neu. ( Erzwungen )", 145, 413, 332, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Label10 = GUICtrlCreateLabel("Version 1.0", 497, 537, 57, 17)
    $TabSheet4 = GUICtrlCreateTabItem("Hilfe")
    GUICtrlCreateTabItem("")
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

    ;If FileExists("c:\Kopie") Then

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

    While 1

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

    ;Variablen
    $tab1hostname1 = GUICtrlRead($Input1)
    $tab1username = GUICtrlRead($Input2)
    $tab1homeserver = GUICtrlRead($Input3)
    $tab1hostname2 = GUICtrlRead($Input4)

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

    $tab2hostname = GUICtrlRead($Input5)
    $tab2username = GUICtrlRead($Input6)

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

    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    ;Case $Tab1

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

    ;###################################################################
    ;Alle lokalen Profile löschen
    ;###################################################################
    Case $Button1
    If GUICtrlRead ($Input1) <> "" Then
    $cmdProfilLoeschen = Run(@ComSpec & " /c test.cmd ", "c:\temp", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    ;~ $cmdProfilLoeschen = Run(@ComSpec & " /c delprof /c:\\" & $tab1hostname1 & " /i /q", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    While 1
    $ausgabe = StdoutRead($cmdProfilLoeschen)
    If @error Then ExitLoop
    GUICtrlSetData($LabelAusgabe, $ausgabe, 1)
    WEnd
    Else
    GUICtrlSetData ($LabelAusgabe,"Bitte den Hostnamen eingeben!" & @CRLF & @CRLF)
    EndIf

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

    ;###################################################################
    ;Profil zurücksetzen
    ;###################################################################
    Case $Button2
    ;Lokales Profil löschen

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

    ;Server Profil kopieren
    If ($tab1hostname2 == "" Or $tab1username == "" Or $tab1homeserver == "") Then
    GUICtrlSetData($LabelAusgabe, "Bitte alle Felder ausfüllen!")
    Else
    $kopieren = DirCopy("\\" & $tab1hostname2 & "\profile\" & $tab1username, "\\" & $tab1hostname2 & "\profile\" & $tab1username & ".sic")
    GUICtrlSetData($LabelAusgabe, "Alle Felder ausgefüllt.")
    EndIf

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

    ;###################################################################
    ;Display auf dem Host anzeigen
    ;###################################################################
    Case $Button3
    If ($tab2hostname == "") Then
    GUICtrlSetData($LabelAusgabe, "Bitte den Hostnamen eingeben!")
    Else
    $cmdDisplay = Run(@ComSpec & " /c psexec \\" & $tab2hostname & " -u ewenet\%username% -i -p " & $pwd & " c:\winnt\system32\control.exe desk.cpl")
    ;GUICtrlSetData ($LabelAusgabe,$cmdDisplay)
    EndIf

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

    ;###################################################################
    ;Führt settings.bat auf dem Host aus
    ;###################################################################
    Case $Button4
    If ($tab2hostname == "") Then
    GUICtrlSetData($LabelAusgabe, "Bitte den Hostnamen eingeben!")
    Else
    $cmdEinstellungen = Run(@ComSpec & " /c Psexec \\" & $tab2hostname & " -s c:\winnt\settings.bat")
    EndIf

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

    ;###################################################################
    ;Systemeigenschaften auf dem Host anzeigen
    ;###################################################################
    Case $Button5
    $cmdSystem = Run(@ComSpec & " /c psexec \\" & $tab2hostname & " -u ewenet\%username% -i c:\winnt\system32\rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,0")

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

    ;###################################################################
    ;Computerverwaltung auf dem Host anzeigen
    ;###################################################################
    Case $Button6
    $cmdComputer = Run(@ComSpec & " /c psexec \\" & $tab2hostname & " -u ewenet\%username% -i -w C:\WINNT\system32 C:\WINNT\system32\mmc.exe C:\WINNT\system32\compmgmt.msc")

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

    ;###################################################################
    ;Quota des Benutzers abfragen
    ;###################################################################
    Case $Button7
    ;$cmdQuota = Run(@COMSPEC & " /c Psexec \\"&$tab2hostname&" -s c:\winnt\settings.bat >NUL)

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

    EndSwitch
    WEnd

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

    ;InetGet - Lädt eine Datei aus dem Internet

    [/autoit]

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯