GUI für mein kleines Progrämmchen ;-)

  • hab mal nur die GUI erstellt; den Buttons kannste ja dann die Funktionen zuweisen ich hab auch gleich ma noch ne Liste gemacht, für die PCs dann könntest du das auch einzeln machen und nicht nur alle

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    Global Const $ini = @ScriptDir&"\pcs.ini"

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

    $Form1 = GUICreate("Lehrer Modul", 354, 208, 193, 125)
    $List1 = GUICtrlCreateList("", 8, 32, 145, 162)
    $Label1 = GUICtrlCreateLabel("Schüler-PCs:", 8, 8, 141, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $Button1 = GUICtrlCreateButton("MonitorLock", 160, 48, 89, 17, 0)
    $Button2 = GUICtrlCreateButton("MonitorUnlock", 256, 48, 89, 17, 0)
    $Button3 = GUICtrlCreateButton("Shutdown", 160, 96, 89, 17, 0)
    $Button4 = GUICtrlCreateButton("Reboot", 160, 120, 89, 17, 0)
    $Button5 = GUICtrlCreateButton("Abmelden", 160, 144, 89, 17, 0)
    GUISetState(@SW_SHOW)
    _readini()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    Func _readini()
    If FileExists($ini) then
    $clients = IniRead($ini, "general", "count", "")
    $msg = ""
    If $clients > 0 Then
    For $i = 1 To $clients
    $msg &= IniRead($ini, "general", $i, "")&"|"
    Next
    $msg = StringTrimRight($msg, 1)
    GUICtrlSetData($List1, $msg)
    EndIf
    EndIf
    EndFunc

    [/autoit]
  • Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    Global Const $ini = @ScriptDir&"\pcs.ini"

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

    #Region ### START Koda GUI section ### Form=C:\Dokumente und Einstellungen\Administrator\Desktop\Form1\Form1.kxf
    $Form1_1 = GUICreate("MasterTeach MasterModul", 422, 352, 322, 279)
    $Group1 = GUICtrlCreateGroup("Einstellungen", 16, 48, 209, 201)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Checkbox1 = GUICtrlCreateCheckbox("Monitore blockieren", 32, 80, 184, 25)
    $Checkbox2 = GUICtrlCreateCheckbox("Monitor weiterleiten", 32, 100, 176, 25)
    $Checkbox3 = GUICtrlCreateCheckbox("Computer runterfahren", 32, 120, 184, 25)
    $Checkbox4 = GUICtrlCreateCheckbox("Computer neustarten", 32, 140, 176, 25)
    $Checkbox5 = GUICtrlCreateCheckbox("Benutzer abmelden", 32, 162, 176, 25)
    $Button3 = GUICtrlCreateButton("Einstellungen verteilen", 32, 192, 177, 33, 0)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Anwenderliste = GUICtrlCreateGroup("Anwenderliste", 232, 48, 185, 281)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $List1 = GUICtrlCreateList("", 248, 80, 153, 182)
    $Button1 = GUICtrlCreateButton("Neuer Anwender", 248, 264, 153, 25, 0)
    $Button2 = GUICtrlCreateButton("Anwender löschen", 248, 296, 153, 25, 0)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Label1 = GUICtrlCreateLabel("MasterTeach MasterModul", 64, 8, 314, 33)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    $Button4 = GUICtrlCreateButton("Meine Sitzung sperren", 16, 256, 201, 33, 0)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Button5 = GUICtrlCreateButton("MasterTeach beenden", 16, 296, 201, 33, 0)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    _readini()
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    Func _readini()
    If FileExists($ini) then
    $clients = IniRead($ini, "general", "count", "")
    $msg = ""
    If $clients > 0 Then
    For $i = 1 To $clients
    $msg &= IniRead($ini, "general", $i, "")&"|"
    Next
    $msg = StringTrimRight($msg, 1)
    GUICtrlSetData($List1, $msg)
    EndIf
    EndIf
    EndFunc

    [/autoit]

    du hast die checkboxes über die Group hinausgezogen und deswegen, wurde dort dann die Linie von der Group unterbrochen

  • Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #Include <GuiListBox.au3>

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

    Global Const $ini = @ScriptDir&"\verteilerliste.ini"
    TCPStartUp()

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

    $Form1 = GUICreate("MasterTeach MasterModul", 422, 352, 322, 279)
    $Group1 = GUICtrlCreateGroup("Einstellungen", 16, 48, 209, 201)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Checkbox1 = GUICtrlCreateCheckbox("Monitore blockieren", 32, 80, 184, 25)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Checkbox2 = GUICtrlCreateCheckbox("Monitor weiterleiten", 32, 100, 176, 25)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Checkbox3 = GUICtrlCreateCheckbox("Computer runterfahren", 32, 120, 184, 25)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Checkbox4 = GUICtrlCreateCheckbox("Computer neustarten", 32, 140, 176, 25)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Checkbox5 = GUICtrlCreateCheckbox("Benutzer abmelden", 32, 162, 176, 25)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Button3 = GUICtrlCreateButton("Einstellungen verteilen", 32, 192, 177, 33, 0)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Anwenderliste = GUICtrlCreateGroup("Anwenderliste", 232, 48, 185, 281)
    $List1 = GUICtrlCreateList("", 248, 80, 153, 182)
    $Button1 = GUICtrlCreateButton("Neuer Anwender", 248, 264, 153, 25, 0)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Button2 = GUICtrlCreateButton("Anwender löschen", 248, 296, 153, 25, 0)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Label1 = GUICtrlCreateLabel("MasterTeach MasterModul", 64, 8, 314, 33)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    $Button4 = GUICtrlCreateButton("Meine Sitzung sperren", 16, 256, 201, 33, 0)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Button5 = GUICtrlCreateButton("MasterTeach beenden", 16, 296, 201, 33, 0)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    ListeSchreiben()
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    Func ListeSchreiben()
    If FileExists($ini) Then
    $Liste = ""
    $clients = IniRead($ini, "general", "count", "")
    If $clients > 0 Then
    For $i = 1 To $clients
    $Liste &= IniRead($ini, "general", $i, "")&"|"
    Next
    $Liste = StringTrimRight($Liste, 1)
    GUICtrlSetData($List1, $Liste)
    EndIf
    EndIf
    EndFunc

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

    Func EinstellungenVerteilen()
    $count = _GUICtrlListBox_GetCount($List1)
    If $count > 0 Then
    For $i 0 To $count-1
    $computer = _GUICtrlListBox_GetItemData($List1, $i)
    $ping = ping($Computer)
    If $ping Then

    Dim $szServerPC = $Computer
    Dim $szIPADDRESS = TCPNameToIP($szServerPC)
    Dim $nPORT = 8695
    Dim $ConnectedSocket = -1
    $ConnectedSocket = TCPConnect($szIPADDRESS,$nPORT)

    If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
    TCPSend($ConnectedSocket,"MonitorLock")
    Else
    TCPSend($ConnectedSocket,"MonitorNoLock")
    EndIf

    If GUICtrlRead($Checkbox2) = $GUI_CHECKED Then
    TCPSend($ConnectedSocket,"MonitorForwand")
    Else
    TCPSend($ConnectedSocket,"MonitorNoForwand")
    EndIf

    If GUICtrlRead($Checkbox3) = $GUI_CHECKED Then
    TCPSend($ConnectedSocket,"Shutdown")
    ;; $CheckBox3 deaktivieren...
    EndIf

    If GUICtrlRead($Checkbox4) = $GUI_CHECKED Then
    TCPSend($ConnectedSocket,"Reboot")
    ;; $CheckBox4 deaktivieren...
    EndIf

    If GUICtrlRead($Checkbox5) = $GUI_CHECKED Then
    TCPSend($ConnectedSocket,"Logoff")
    ;; $Checkbox5 deaktivieren...
    EndIf

    EndIf
    Next
    EndIf
    EndFunc
    Func SitzungSperren()

    EndFunc
    Func MasterEnd()

    EndFunc
    ; ...kann mir einer diese funktionen schreiben...? ;

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

    Func NeuerAnwender()
    $new = InputBox('Neuer Anwender', 'Bitte die IP eingeben.')
    $count = IniRead($ini, "general", "count", "")
    IniWrite($ini, "general", $count+1, $new)
    IniWrite($ini, "general", "count", $count+1)
    ListeSchreiben()
    EndFunc

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

    Func AnwenderLoeschen()
    $cursel = _GUICtrlListBox_GetCurSel($List1)
    If $cursel >= 0 Then
    _GUICtrlListBox_DeleteString($List1, $cursel)
    $count = _GUICtrlListBox_GetCount($List1)
    For $i = 0 To $count
    $computer = _GUICtrlListBox_GetItemData($List1, $i)
    IniWrite($ini, "general", $i+1, $computer)
    Next
    IniWrite($ini, "general", "count", $count+1)
    EndIf

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

    EndFunc
    ; vielen Dank! ;)

    [/autoit]
  • Hallo Gespenst,

    wenn Du die Computernamen in einem Array abspeicherst, kannst Du mit Array[$count] auf die einzelnen Namen zugreifen.
    Und dann möchte ich Dich auf ein nicht unwesentliches Problem hinweisen. Unter Windows XP SP2 funktioniert der Ping Befehl nicht mehr. Das liegt daran, das die Firewall standardmäßig keinen Ping annimmt. Und ohne Ping läuft Dein Programm auch nicht.

    Gruß,

    TrueMu