[ tutorial ] GUI's in AutoIt

  • Hallo Leute,

    da ich in letzter Zeit meiner Meinung nach viel zu viele Threads sehe, wie mache ich ein Skript mit mehreren GUI's, und und und. Deswegen mache ich jetzt einen Thread über GUI's in AutoIt.

    ~~~~~~~Anfang~~~~~~~

    Was ist ein GUI?
    Eine GUI, grafische Benutzeroberfläche (engl. „Graphical User Interface“) ist eine Software-Komponente, die dem Benutzer eines Computers die Interaktion mit der Maschine über grafische Symbole erlaubt.

    Das sagt Wikipedia, ich denke da gibt es nicht mehre viel hinzuzufügen.

    Wie erstelle ich ein GUI in AutoIt?

    Als aller erstes wird für das Erstellen von GUI's der Koda Form Designer empfohlen.

    Syntax:

    [autoit]

    GUICreate ( "title" [, width [, height [, left [, top [, style [, exStyle [, parent]]]]]]] )

    [/autoit]
    Details


    width - [optional] Die Breite des Fensters
    height - [optional] Die Höhe des Fensters
    left - [optional] Die linke Seite der Dialogbox. Standardmäßig (Wert -1) wird das Fenster zentriert. Wenn left angegeben wird, muss auch top angegeben werden
    top - [optional] Die Oberkante der Dialogbox. Standardmäßig (Wert -1) wird das Fenster zentriert
    style - [optional] Definiert den Fenster-Stil. Siehe Anhang GUI-Stile für Controls.
    Verwende -1 für den Standard-Stil, der eine Kombination aus
    $WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU Stil ist.
    Einige Stile werden immer mit einbezogen: $WS_CLIPSIBLINGS, und $WS_SYSMENU wenn $WS_MAXIMIZEBOX oder $WS_SIZEBOX verwendet werden
    exStyle - [optional] Definiert den erweiterten Stil des Fensters. Siehe die Tabelle der erweiterten Stile weiter unten. -1 ist der Standardwert
    parent - [optional] Das Handle eines anderen, zuvor erstellten Fensters - dieses neue Fenster wird ein Child dieses Parent-Fensters

    Wie wir sehen, brauchen wir für ein Beispiel GUI nur den Titel, denn der Rest ist optional.

    Hier ein GUI ohne Funktion, es kann nur über die Startleiste beendet werden:

    Beispiel GUI
    [autoit]

    $GUI = GUICreate("Beispiel GUI") ;Diese Funktion erstellt ein GUI-Fenster
    GUISetState(@SW_SHOW, $GUI) ;Diese Funktion kann auch ohne Parameter angegeben werden, sie dient dazu das GUI-Fenster sichtbar zu machen

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

    While 1 ;Diese Schleife dient dazu, dass das GUI-Fenster unendlich lang offen bleibt, bis es vom Benutzer geschlossen wird. (Endlosschleife)
    Sleep(100) ;Diese Funktion bewirkt das das GUI immer wieder 100 Millisekunden wartet, da es eine Endlosschleife ist wartet das GUI unendlich lang, bis es vom Benutzer geschlossen wird.
    WEnd ;Diese Schleife schließt die Endlosschleife

    [/autoit]

    GUISetState dient dazu, das GUI-Fenster sichtbar zu machen. Syntax:

    [autoit]

    GUISetState ( [flag [, winhandle]] )

    [/autoit]
    Details


    flag - [optional] @SW_SHOW = Zeige ein vorher verstecktes Fenster an (Standard)
    @SW_HIDE = Verstecke das Fenster
    @SW_MINIMIZE = Minimiere das Fenster
    @SW_MAXIMIZE = Maximiere das Fenster
    @SW_RESTORE = Stelle das Fenster wieder her
    @SW_DISABLE = Deaktiviere das Fenster
    @SW_ENABLE = Aktiviere das Fenster
    @SW_LOCK = Sperre das Fenster, um Veränderungen zu verhindern
    @SW_UNLOCK = Gib das Fenster wieder frei, damit es wieder verändert werden kann
    winhandle - [optional] Fenster-Handle, wie von GUICreate zurückgegeben (voreingestellt ist das zuvor verwendete Fenster)

    GUIOnEventMode

    Der GUIOnEvent-Modus ist eine der Möglichkeiten zu Interaktion. Er ist oft vorteilhafter als der andere GUIGetMsg-Modus, weil er sich einfacher bedienen lässt. Syntax:

    [autoit]

    Opt("GUIOnEventMode", 1) ;Dieser Befehl kommt an den Skriptanfang, um den GUIGetMsg-Modus komplett für das Skript auszuschalten

    [/autoit]
    Details

    Aktiviert/Deaktiviert die OnEvent Funktionsanmeldung.
    0 = (Standard) deaktiviert.
    1 = aktiviert.

    Hier ein Beispiel für die Interaktion des OnEvent-Modus bei verschiedenen Controls (Ctrl):

    Beispiel GUI
    [autoit]

    #include <AVIConstants.au3> ;Diese Funktion bindet dieses Skript (in <>)mit in das Skript rein
    #include <ButtonConstants.au3> ;Diese Funktion bindet dieses Skript (in <>)mit in das Skript rein
    #include <ComboConstants.au3> ;Diese Funktion bindet dieses Skript (in <>)mit in das Skript rein
    #include <DateTimeConstants.au3> ;Diese Funktion bindet dieses Skript (in <>)mit in das Skript rein
    #include <EditConstants.au3> ;Diese Funktion bindet dieses Skript (in <>)mit in das Skript rein
    #include <GUIConstantsEx.au3> ;Diese Funktion bindet dieses Skript (in <>)mit in das Skript rein
    #include <GUIListBox.au3> ;Diese Funktion bindet dieses Skript (in <>)mit in das Skript rein
    #include <ListViewConstants.au3> ;Diese Funktion bindet dieses Skript (in <>)mit in das Skript rein
    #include <SliderConstants.au3> ;Diese Funktion bindet dieses Skript (in <>)mit in das Skript rein
    #include <StaticConstants.au3> ;Diese Funktion bindet dieses Skript (in <>)mit in das Skript rein
    #include <TabConstants.au3> ;Diese Funktion bindet dieses Skript (in <>)mit in das Skript rein
    #include <TreeViewConstants.au3> ;Diese Funktion bindet dieses Skript (in <>)mit in das Skript rein
    #include <WindowsConstants.au3> ;Diese Funktion bindet dieses Skript (in <>)mit in das Skript rein
    Opt("TrayMenuMode", 1) ;Diese Funktion setzt den Tray-Menü-Modus auf 1 (ohne Standartmenü)
    Opt("TrayOnEventMode", 1) ;Diese Funktion aktiviert den OnEvent-Modus für das Tray-Menü
    Opt("GUIOnEventMode", 1) ;Diese Funktion aktiviert den OnEvent-Modus für das GUI
    #Region ### START Koda GUI section ### Form=C:\Users\Burak\Desktop\Tutorial\oneventbeispiel.kxf
    $Form1 = GUICreate("Beispiel GUI", 818, 382) ;Diese Funktion erstellt ein GUI-Fenster
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit") ;Wenn das GUI-Fenster geschlossen wird, wird _Exit aufgerufen
    $MenuItem1 = GUICtrlCreateMenu("&Datei") ;Diese Funktion erstellt ein Menüleisten Control
    $MenuItem2 = GUICtrlCreateMenuItem("Verstecken", $MenuItem1) ;Diese Funktion erstellt ein Menu-Item Control
    GUICtrlSetOnEvent(-1, "_Hide") ; ;Wenn das Control angeklickt wurde, wird _Hide aufgerufen
    $MenuItem3 = GUICtrlCreateMenuItem("Beenden", $MenuItem1) ;Diese Funktion erstellt ein Menu-Item Control
    GUICtrlSetOnEvent(-1, "_Exit") ; ;Wenn das Control angeklickt wurde, wird _Exit aufgerufen
    $Label1 = GUICtrlCreateLabel("Label1", 8, 40, 36, 17) ;Diese Funktion erstellt ein Label-Control
    GUICtrlSetOnEvent(-1, "_Label1") ; ;Wenn das Control angeklickt wurde, wird _Label1 aufgerufen
    $Input1 = GUICtrlCreateInput("Input1", 8, 64, 121, 21) ;Diese Funktion erstellt ein Input-Control
    $Edit1 = GUICtrlCreateEdit("Edit", 8, 88, 185, 89) ;Diese Funktion erstellt ein Edit-Control
    $Button1 = GUICtrlCreateButton("Button1", 8, 176, 75, 25, $WS_GROUP) ;Diese Funktion erstellt ein Button-Control
    GUICtrlSetOnEvent(-1, "_Button1") ;Wenn das Control angeklickt wurde, wird _Button1 aufgerufen
    $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 8, 200, 97, 17) ;Diese Funktion erstellt ein Checkbox-Control
    GUICtrlSetOnEvent(-1, "_Checkbox1") ; ;Wenn das Control angeklickt wurde, wird _Checkbox1 aufgerufen
    $Radio1 = GUICtrlCreateRadio("Radio1", 8, 216, 57, 17) ;Diese Funktion erstellt ein Radio-Control
    GUICtrlSetOnEvent(-1, "_Radio1") ;Wenn das Control angeklickt wurde, wird _Radio1 aufgerufen
    $Radio2 = GUICtrlCreateRadio("Radio2", 72, 216, 57, 17) ;Diese Funktion erstellt ein Radio-Control
    GUICtrlSetOnEvent(-1, "_Radio2") ;Wenn das Control angeklickt wurde, wird _Radio2 aufgerufen
    $List1 = GUICtrlCreateList("", 8, 232, 121, 97) ;Diese Funktion erstellt ein List-Control
    GUICtrlSetOnEvent(-1, "_List1") ;Wenn das Control angeklickt wurde, wird _List1 aufgerufen
    GUICtrlSetData(-1, "Beispiel 1|Beispiel 2|Beispiel 3") ;Diese Funktion setzt den Inhalt des List-Controls
    $Combo1 = GUICtrlCreateCombo("Combo1", 8, 336, 145, 25) ;Diese Funktion erstellt ein Combo-Control
    GUICtrlSetOnEvent(-1, "_Combo1") ;Wenn das Control angeklickt wurde, wird _Combo1 aufgerufen
    GUICtrlSetData(-1, "Beispiel 1|Beispiel 2|Beispiel 3") ;Diese Funktion setzt den Inhalt des Combo-Controls
    $Pic1 = GUICtrlCreatePic("C:\Program Files\AutoIt3\Examples\GUI\logo4.gif", 208, 0, 185, 100, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS)) ;Diese Funktion erstellt ein Pic (Bild)-Control
    GUICtrlSetOnEvent(-1, "_Pic1") ;Wenn das Control angeklickt wurde, wird _Pic1 aufgerufen
    $Input2 = GUICtrlCreateInput("1", 208, 112, 40, 21) ;Diese Funktion erstellt ein Input-Control für den Updown-Control
    GUICtrlSetLimit(-1, 999, 1) ;Diese Funktion setzt das Limit des Input-Controls
    $Updown1 = GUICtrlCreateUpdown(-1) ;Diese Funktion erstellt ein Updown-Control für das Input-Control
    GUICtrlSetOnEvent(-1, "_Updown1") ;Wenn das Control angeklickt wurde, wird _Updown1 aufgerufen
    GUICtrlSetLimit(-1, 999, 1) ;Diese Funktion setzt das Limit des Updown-Controls
    $Avi1 = GUICtrlCreateAvi("C:\Program Files\AutoIt3\Examples\GUI\sampleAVI.avi", -1, 208, 144, 32, 32, $ACS_AUTOPLAY) ;Diese Funktion erstellt ein Avi-Control das automatisch startet ($ACS_AUTOPLAY)
    $Slider1 = GUICtrlCreateSlider(208, 184, 150, 29) ;Diese Funktion erstellt ein Slider-Control
    GUICtrlSetOnEvent(-1, "_Slider1") ;Wenn das Control angeklickt wurde, wird _Slider1 aufgerufen
    GUICtrlSetData(-1, 50) ;Diese Funktion setzt die Position des Slider-Controls
    $Label2 = GUICtrlCreateLabel("50", 208, 216, 20, 17) ;Diese Funktion erstellt ein Label-Control für die Anzeige der Position des Slider-Controls
    GUICtrlSetOnEvent(-1, "_Label2") ;Wenn das Control angeklickt wurde, wird _Slider2 aufgerufen
    $Date1 = GUICtrlCreateDate("", 208, 240, 186, 21) ;Diese Funktion erstellt ein Datums-Control
    GUICtrlSetOnEvent(-1, "_Date1") ;Wenn das Control angeklickt wurde, wird _Date1 aufgerufen
    $MonthCal1 = GUICtrlCreateMonthCal("", 408, 0, 196, 164) ;Diese Funktion erstellt ein Monatskalender-Control
    GUICtrlSetOnEvent(-1, "_MonthCal1") ;Wenn das Control angeklickt wurde, wird _MonthCal1 aufgerufen
    $TreeView1 = GUICtrlCreateTreeView(208, 264, 185, 89) ;Diese Funktion erstellt ein TreeView-Control
    $TreeView1_0 = GUICtrlCreateTreeViewItem("Beispiel 1", $TreeView1) ;Diese Funktion erstellt ein TreeView-Item zu dem TreeView-Control
    $TreeView1_1 = GUICtrlCreateTreeViewItem("Beispiel 1 Item 1", $TreeView1_0) ;Diese Funktion erstellt ein TreeView-Item zu dem TreeView-Control
    $TreeView1_2 = GUICtrlCreateTreeViewItem("Beispiel 1 Item 2", $TreeView1_0) ;Diese Funktion erstellt ein TreeView-Item zu dem TreeView-Control
    $TreeView1_3 = GUICtrlCreateTreeViewItem("Beispiel 2", $TreeView1) ;Diese Funktion erstellt ein TreeView-Item zu dem TreeView-Control
    $TreeView1_4 = GUICtrlCreateTreeViewItem("Beispiel 1 Item 1", $TreeView1_3) ;Diese Funktion erstellt ein TreeView-Item zu dem TreeView-Control
    $ListView1 = GUICtrlCreateListView("Beispiel 1|Beispiel 2", 408, 184, 200, 174) ;Diese Funktion erstellt ein ListView-Control
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 98) ;Diese Funktion setzt die Breite der Spalte 1
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 98) ;Diese Funktion setzt die Breite der Spalte 2
    $ListView1_0 = GUICtrlCreateListViewItem("Beispiel 1 Item 1|Beispiel 2 Item 1", $ListView1) ;Diese Funktion erstellt ein ListView-Item zu dem ListView-Control
    $ListView1_1 = GUICtrlCreateListViewItem("Beispiel 1 Item 2", $ListView1) ;Diese Funktion erstellt ein ListView-Item zu dem ListView-Control
    $ListView1_2 = GUICtrlCreateListViewItem("|Beispiel 2 Item 2", $ListView1) ;Diese Funktion erstellt ein ListView-Item zu dem ListView-Control
    $ListView1_3 = GUICtrlCreateListViewItem("Beispiel 2 Item 3", $ListView1) ;Diese Funktion erstellt ein ListView-Item zu dem ListView-Control
    $Tab1 = GUICtrlCreateTab(616, 0, 193, 81) ;Diese Funktion erstellt ein Tab-Control
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT) ;Diese Funktion setzt die Größenänderungen für das Tab-Control
    $TabSheet1 = GUICtrlCreateTabItem("Beispiel 1") ;Diese Funktion erstellt ein Tab-Item zu dem Tab-Control
    $Button2 = GUICtrlCreateButton("Beispiel 1 Button", 624, 40, 91, 25, $WS_GROUP) ;Diese Funktion erstellt ein Button-Control in dem Tab-Control
    GUICtrlSetOnEvent(-1, "_Button2") ;Wenn das Control angeklickt wurde, wird _Button2 aufgerufen
    $TabSheet2 = GUICtrlCreateTabItem("Beispiel 2") ;Diese Funktion erstellt ein Tab-Item zu dem Tab-Control
    $Button3 = GUICtrlCreateButton("Beispiel 2 Button", 624, 40, 91, 25, $WS_GROUP) ;Diese Funktion erstellt ein Button-Control in dem Tab-Control
    GUICtrlSetOnEvent(-1, "_Button3") ;Wenn das Control angeklickt wurde, wird _Button3 aufgerufen
    GUICtrlCreateTabItem("") ;Diese Funktion schließt das Tab-Control
    $Obj1 = ObjCreate("Shell.Explorer.2") ;Diese Funktion erstellt ein Objekt
    $Obj1_ctrl = GUICtrlCreateObj($Obj1, 616, 88, 192, 264) ;Diese Funktion bindet das Objekt in das GUI-Fenster ein
    $MenuItem5 = TrayCreateItem("Wiederherstellen") ;Diese Funktion erstellt ein Tray-Item in das vorhande Tray-Menu
    TrayItemSetOnEvent(-1, "_TrayRestore") ;Wenn das Control angeklickt wurde, wird _TrayRestore aufgerufen
    $MenuItem6 = TrayCreateItem("Verstecken") ;Diese Funktion erstellt ein Tray-Item in das vorhande Tray-Menu
    TrayItemSetOnEvent(-1, "_TrayHide") ;Wenn das Control angeklickt wurde, wird _TrayHide aufgerufen
    $MenuItem7 = TrayCreateItem("Minimieren") ;Diese Funktion erstellt ein Tray-Item in das vorhande Tray-Menu
    TrayItemSetOnEvent(-1, "_TrayMinimize") ;Wenn das Control angeklickt wurde, wird _TrayMinimize aufgerufen
    $MenuItem8 = TrayCreateItem("Beenden") ;Diese Funktion erstellt ein Tray-Item in das vorhande Tray-Menu
    TrayItemSetOnEvent(-1, "_Exit") ;Wenn das Control angeklickt wurde, wird _Exit aufgerufen
    GUISetState() ;Diese Funktion kann ohne Parameter angegeben werden, sie dient dazu das GUI-Fenster sichtbar zu machen
    #EndRegion ### END Koda GUI section ###

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

    While 1 ;Diese Schleife dient dazu, dass das GUI-Fenster unendlich lang offen bleibt, bis es vom Benutzer geschlossen wird. (Endlosschleife)
    Sleep(100)
    WEnd ;Diese Schleife schließt die Endlosschleife

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

    Func _Exit()
    GUIDelete($Form1) ;Diese Funktion löscht das GUI-Fenster
    Exit ;Diese Funktion beendet das Skript
    EndFunc

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

    Func _Hide()
    GUISetState(@SW_HIDE) ;Die Funktion versteckt das GUI-Fenster
    EndFunc

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

    Func _Label1()
    MsgBox(0, "", "Label1 wurde angeklickt") ;Zeigt eine MessageBox
    EndFunc

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

    Func _Button1()
    MsgBox(0, "", "Button1 wurde angeklickt") ;Zeigt eine MessageBox
    EndFunc

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

    Func _Checkbox1()
    If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) = $GUI_CHECKED Then
    MsgBox(0, "", "Checkbox1 wurde angekreuzt") ;Zeigt eine MessageBox
    Else
    MsgBox(0, "", "Checkbox1 wurde ausgekreuzt") ;Zeigt eine MessageBox
    EndIf
    EndFunc

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

    Func _Radio1()
    MsgBox(0, "", "Radio1 wurde angeklickt") ;Zeigt eine MessageBox
    EndFunc

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

    Func _Radio2()
    MsgBox(0, "", "Radio2 wurde angeklickt") ;Zeigt eine MessageBox
    EndFunc

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

    Func _List1()
    If GUICtrlRead($List1) <> "" Then
    MsgBox(0, "", GUICtrlRead($List1) & " in List1 wurde angeklickt") ;Zeigt eine MessageBox
    Else
    MsgBox(0, "", "List1 wurde angeklickt") ;Zeigt eine MessageBox
    EndIf
    EndFunc

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

    Func _Combo1()
    MsgBox(0, "", "Combo1 wurde in " & GUICtrlRead($Combo1) & " umgeändert") ;Zeigt eine MessageBox
    EndFunc

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

    Func _Pic1()
    MsgBox(0, "", "Pic1 wurde angeklickt") ;Zeigt eine MessageBox
    EndFunc

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

    Func _Updown1()
    MsgBox(0, "", "Updown1 wurde angeklickt und Input2 wurde der Wert " & GUICtrlRead($Input2) & " zugewiesen") ;Zeigt eine MessageBox
    EndFunc

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

    Func _Slider1()
    GUICtrlSetData($Label2, GUICtrlRead($Slider1))
    EndFunc

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

    Func _Label2()
    MsgBox(0, "", "Label2 wurde angeklickt") ;Zeigt eine MessageBox
    EndFunc

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

    Func _Date1()
    MsgBox(0, "", "Date1 wurde auf " & GUICtrlRead($Date1) & " gesetzt") ;Zeigt eine MessageBox
    EndFunc

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

    Func _MonthCal1()
    MsgBox(0, "", "Date1 wurde auf " & GUICtrlRead($MonthCal1) & " gesetzt") ;Zeigt eine MessageBox
    EndFunc

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

    Func _Tab1()
    MsgBox(0, "", "Tab1 wurde angeklickt") ;Zeigt eine MessageBox
    EndFunc

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

    Func _Button2()
    MsgBox(0, "", "Button2 wurde angeklickt") ;Zeigt eine MessageBox
    EndFunc

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

    Func _Button3()
    MsgBox(0, "", "Button3 wurde angeklickt") ;Zeigt eine MessageBox
    EndFunc

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

    Func _TrayRestore()
    TrayItemSetState($MenuItem5, 4) ;Entfernt das Häckchen das ensteht, wenn der Benutzer das Tray-Item anklickt
    GUISetState(@SW_SHOW) ;Diese Funktion zeigt das GUI-Fenster
    GUISetState(@SW_RESTORE) ;Diese Funktion stellt das GUI-Fenster wieder her
    EndFunc

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

    Func _TrayMinimize()
    TrayItemSetState($MenuItem7, 4) ;Entfernt das Häckchen das ensteht, wenn der Benutzer das Tray-Item anklickt
    GUISetState(@SW_MINIMIZE) ;Diese Funktion minimiert das GUI-Fenster
    EndFunc

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

    Func _TrayHide()
    TrayItemSetState($MenuItem6, 4) ;Entfernt das Häckchen das ensteht, wenn der Benutzer das Tray-Item anklickt
    GUISetState(@SW_HIDE) ;Diese Funktion versteckt das GUI-Fenster
    EndFunc

    [/autoit]

    Mehrere GUI's im OnEvent-Modus

    Bei mehreren GUI's ist die bessere Variante, den GUIOnEvent-Modus zu wählen. Außerdem ist es wichtig, dass man die GUI's vorher erstellt und später erst erscheinen lässt. Hier ein Beispiel für merhrere GUI's:

    Beispiel für mehrere GUI's
    [autoit]

    #include <GUIConstantsEx.au3>
    Opt("GUIOnEventMode", 1)
    $GUI1 = GUICreate("GUI 1")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    $Button1 = GUICtrlCreateButton("GUI 2 anzeigen", 150, 150)
    GUICtrlSetOnEvent(-1, "_Button1")
    GUISetState()

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

    $GUI2 = GUICreate("GUI 2")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Button2")
    $Button2 = GUICtrlCreateButton("GUI 1 anzeigen", 150, 150)
    GUICtrlSetOnEvent(-1, "_Button2")
    GUISetState(@SW_HIDE)

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

    While 1
    Sleep(100)
    WEnd

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

    Func _Exit()
    GUIDelete($GUI1)
    GUIDelete($GUI2)
    Exit
    EndFunc

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

    Func _Button1()
    GUISetState(@SW_SHOW, $GUI2)
    GUISetState(@SW_HIDE, $GUI1)
    EndFunc

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

    Func _Button2()
    GUISetState(@SW_SHOW, $GUI1)
    GUISetState(@SW_HIDE, $GUI2)
    EndFunc

    [/autoit]

    GUIGetMsg()-Modus

    Die andere Möglichkeit bei einer GUI zur Interaktion, ist der GUIGetMsg()-Modus. Dieser ist der Standart, der von AutoIt voreingestellte Modus. Hier ein Beispiel GUI:

    Beispiel GUI
    [autoit]

    #include <AVIConstants.au3> ;Diese Funktion bindet dieses Skript (in <>)mit in das Skript rein
    #include <ButtonConstants.au3> ;Diese Funktion bindet dieses Skript (in <>)mit in das Skript rein
    #include <ComboConstants.au3> ;Diese Funktion bindet dieses Skript (in <>)mit in das Skript rein
    #include <DateTimeConstants.au3> ;Diese Funktion bindet dieses Skript (in <>)mit in das Skript rein
    #include <EditConstants.au3> ;Diese Funktion bindet dieses Skript (in <>)mit in das Skript rein
    #include <GUIConstantsEx.au3> ;Diese Funktion bindet dieses Skript (in <>)mit in das Skript rein
    #include <GUIListBox.au3> ;Diese Funktion bindet dieses Skript (in <>)mit in das Skript rein
    #include <ListViewConstants.au3> ;Diese Funktion bindet dieses Skript (in <>)mit in das Skript rein
    #include <SliderConstants.au3> ;Diese Funktion bindet dieses Skript (in <>)mit in das Skript rein
    #include <StaticConstants.au3> ;Diese Funktion bindet dieses Skript (in <>)mit in das Skript rein
    #include <TabConstants.au3> ;Diese Funktion bindet dieses Skript (in <>)mit in das Skript rein
    #include <TreeViewConstants.au3> ;Diese Funktion bindet dieses Skript (in <>)mit in das Skript rein
    #include <WindowsConstants.au3> ;Diese Funktion bindet dieses Skript (in <>)mit in das Skript rein
    Opt("TrayMenuMode", 1) ;Diese Funktion setzt den Tray-Menü-Modus auf 1 (ohne Standartmenü)
    #Region ### START Koda GUI section ### Form=C:\Users\Burak\Desktop\Tutorial\beispiel.kxf
    $Form1 = GUICreate("Beispiel GUI", 818, 382) ;Diese Funktion erstellt ein GUI-Fenster
    $MenuItem1 = GUICtrlCreateMenu("&Datei") ;Diese Funktion erstellt ein Menüleisten Control
    $MenuItem2 = GUICtrlCreateMenuItem("Verstecken", $MenuItem1) ;Diese Funktion erstellt ein Menu-Item Control
    $MenuItem3 = GUICtrlCreateMenuItem("Beenden", $MenuItem1) ;Diese Funktion erstellt ein Menu-Item Control
    $Label1 = GUICtrlCreateLabel("Label1", 8, 40, 36, 17) ;Diese Funktion erstellt ein Label-Control
    $Input1 = GUICtrlCreateInput("Input1", 8, 64, 121, 21) ;Diese Funktion erstellt ein Input-Control
    $Edit1 = GUICtrlCreateEdit("Edit", 8, 88, 185, 89) ;Diese Funktion erstellt ein Edit-Control
    $Button1 = GUICtrlCreateButton("Button1", 8, 176, 75, 25, $WS_GROUP) ;Diese Funktion erstellt ein Button-Control
    $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 8, 200, 97, 17) ;Diese Funktion erstellt ein Checkbox-Control
    $Radio1 = GUICtrlCreateRadio("Radio1", 8, 216, 57, 17) ;Diese Funktion erstellt ein Radio-Control
    $Radio2 = GUICtrlCreateRadio("Radio2", 72, 216, 57, 17) ;Diese Funktion erstellt ein Radio-Control
    $List1 = GUICtrlCreateList("", 8, 232, 121, 97) ;Diese Funktion erstellt ein List-Control
    GUICtrlSetData(-1, "Beispiel 1|Beispiel 2|Beispiel 3") ;Diese Funktion setzt den Inhalt des List-Controls
    $Combo1 = GUICtrlCreateCombo("Combo1", 8, 336, 145, 25) ;Diese Funktion erstellt ein Combo-Control
    GUICtrlSetData(-1, "Beispiel 1|Beispiel 2|Beispiel 3") ;Diese Funktion setzt den Inhalt des Combo-Controls
    $Pic1 = GUICtrlCreatePic("C:\Program Files\AutoIt3\Examples\GUI\logo4.gif", 208, 0, 185, 100, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS)) ;Diese Funktion erstellt ein Pic (Bild)-Control
    $Input2 = GUICtrlCreateInput("1", 208, 112, 40, 21) ;Diese Funktion erstellt ein Input-Control für den Updown-Control
    GUICtrlSetLimit(-1, 999, 1) ;Diese Funktion setzt das Limit des Input-Controls
    $Updown1 = GUICtrlCreateUpdown(-1) ;Diese Funktion erstellt ein Updown-Control für das Input-Control
    GUICtrlSetLimit(-1, 999, 1) ;Diese Funktion setzt das Limit des Updown-Controls
    $Avi1 = GUICtrlCreateAvi("C:\Program Files\AutoIt3\Examples\GUI\sampleAVI.avi", -1, 208, 144, 32, 32, $ACS_AUTOPLAY) ;Diese Funktion erstellt ein Avi-Control das automatisch startet ($ACS_AUTOPLAY)
    $Slider1 = GUICtrlCreateSlider(208, 184, 150, 29) ;Diese Funktion erstellt ein Slider-Control
    GUICtrlSetData(-1, 50) ;Diese Funktion setzt die Position des Slider-Controls
    $Label2 = GUICtrlCreateLabel("50", 208, 216, 20, 17) ;Diese Funktion erstellt ein Label-Control für die Anzeige der Position des Slider-Controls
    $Date1 = GUICtrlCreateDate("", 208, 240, 186, 21) ;Diese Funktion erstellt ein Datums-Control
    $MonthCal1 = GUICtrlCreateMonthCal("", 408, 0, 196, 164) ;Diese Funktion erstellt ein Monatskalender-Control
    $TreeView1 = GUICtrlCreateTreeView(208, 264, 185, 89) ;Diese Funktion erstellt ein TreeView-Control
    $TreeView1_0 = GUICtrlCreateTreeViewItem("Beispiel 1", $TreeView1) ;Diese Funktion erstellt ein TreeView-Item zu dem TreeView-Control
    $TreeView1_1 = GUICtrlCreateTreeViewItem("Beispiel 1 Item 1", $TreeView1_0) ;Diese Funktion erstellt ein TreeView-Item zu dem TreeView-Control
    $TreeView1_2 = GUICtrlCreateTreeViewItem("Beispiel 1 Item 2", $TreeView1_0) ;Diese Funktion erstellt ein TreeView-Item zu dem TreeView-Control
    $TreeView1_3 = GUICtrlCreateTreeViewItem("Beispiel 2", $TreeView1) ;Diese Funktion erstellt ein TreeView-Item zu dem TreeView-Control
    $TreeView1_4 = GUICtrlCreateTreeViewItem("Beispiel 1 Item 1", $TreeView1_3) ;Diese Funktion erstellt ein TreeView-Item zu dem TreeView-Control
    $ListView1 = GUICtrlCreateListView("Beispiel 1|Beispiel 2", 408, 184, 200, 174) ;Diese Funktion erstellt ein ListView-Control
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 98) ;Diese Funktion setzt die Breite der Spalte 1
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 98) ;Diese Funktion setzt die Breite der Spalte 2
    $ListView1_0 = GUICtrlCreateListViewItem("Beispiel 1 Item 1|Beispiel 2 Item 1", $ListView1) ;Diese Funktion erstellt ein ListView-Item zu dem ListView-Control
    $ListView1_1 = GUICtrlCreateListViewItem("Beispiel 1 Item 2", $ListView1) ;Diese Funktion erstellt ein ListView-Item zu dem ListView-Control
    $ListView1_2 = GUICtrlCreateListViewItem("|Beispiel 2 Item 2", $ListView1) ;Diese Funktion erstellt ein ListView-Item zu dem ListView-Control
    $ListView1_3 = GUICtrlCreateListViewItem("Beispiel 2 Item 3", $ListView1) ;Diese Funktion erstellt ein ListView-Item zu dem ListView-Control
    $Tab1 = GUICtrlCreateTab(616, 0, 193, 81) ;Diese Funktion erstellt ein Tab-Control
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT) ;Diese Funktion setzt die Größenänderungen für das Tab-Control
    $TabSheet1 = GUICtrlCreateTabItem("Beispiel 1") ;Diese Funktion erstellt ein Tab-Item zu dem Tab-Control
    $Button2 = GUICtrlCreateButton("Beispiel 1 Button", 624, 40, 91, 25, $WS_GROUP) ;Diese Funktion erstellt ein Button-Control in dem Tab-Control
    $TabSheet2 = GUICtrlCreateTabItem("Beispiel 2") ;Diese Funktion erstellt ein Tab-Item zu dem Tab-Control
    $Button3 = GUICtrlCreateButton("Beispiel 2 Button", 624, 40, 91, 25, $WS_GROUP) ;Diese Funktion erstellt ein Button-Control in dem Tab-Control
    GUICtrlCreateTabItem("") ;Diese Funktion schließt das Tab-Control
    $Obj1 = ObjCreate("Shell.Explorer.2") ;Diese Funktion erstellt ein Objekt
    $Obj1_ctrl = GUICtrlCreateObj($Obj1, 616, 88, 192, 264) ;Diese Funktion bindet das Objekt in das GUI-Fenster ein
    $MenuItem5 = TrayCreateItem("Wiederherstellen") ;Diese Funktion erstellt ein Tray-Item in das vorhande Tray-Menu
    $MenuItem6 = TrayCreateItem("Verstecken") ;Diese Funktion erstellt ein Tray-Item in das vorhande Tray-Menu
    $MenuItem7 = TrayCreateItem("Minimieren") ;Diese Funktion erstellt ein Tray-Item in das vorhande Tray-Menu
    $MenuItem8 = TrayCreateItem("Beenden") ;Diese Funktion erstellt ein Tray-Item in das vorhande Tray-Menu
    GUISetState() ;Diese Funktion kann ohne Parameter angegeben werden, sie dient dazu das GUI-Fenster sichtbar zu machen
    #EndRegion ### END Koda GUI section ###

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

    While 1 ;Diese Schleife dient dazu, dass das GUI-Fenster unendlich lang offen bleibt, bis es vom Benutzer geschlossen wird. (Endlosschleife)
    $nGUIMsg = GUIGetMsg()
    $nTRAYMsg = TrayGetMsg()
    Switch $nGUIMsg
    Case $MenuItem2
    _Hide()
    Case $MenuItem3, $GUI_EVENT_CLOSE
    _Exit()
    Case $Label1
    _Label1()
    Case $Button1
    _Button1()
    Case $Checkbox1
    _Checkbox1()
    Case $Radio1
    _Radio1()
    Case $Radio2
    _Radio2()
    Case $List1
    _List1()
    Case $Combo1
    _Combo1()
    Case $Pic1
    _Pic1()
    Case $Updown1
    _Updown1()
    Case $Slider1
    _Slider1()
    Case $Label2
    _Label2()
    Case $Date1
    _Date1()
    Case $MonthCal1
    _MonthCal1()
    Case $Button2
    _Button2()
    Case $Button3
    _Button3()
    EndSwitch
    Switch $nTRAYMsg
    Case $MenuItem5
    _TrayRestore()
    Case $MenuItem6
    _TrayHide()
    Case $MenuItem7
    _TrayMinimize()
    Case $MenuItem8
    _Exit()
    EndSwitch

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

    WEnd ;Diese Schleife schließt die Endlosschleife

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

    Func _Exit()
    GUIDelete($Form1) ;Diese Funktion löscht das GUI-Fenster
    Exit ;Diese Funktion beendet das Skript
    EndFunc

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

    Func _Hide()
    GUISetState(@SW_HIDE) ;Die Funktion versteckt das GUI-Fenster
    EndFunc

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

    Func _Label1()
    MsgBox(0, "", "Label1 wurde angeklickt") ;Zeigt eine MessageBox
    EndFunc

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

    Func _Button1()
    MsgBox(0, "", "Button1 wurde angeklickt") ;Zeigt eine MessageBox
    EndFunc

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

    Func _Checkbox1()
    If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) = $GUI_CHECKED Then
    MsgBox(0, "", "Checkbox1 wurde angekreuzt") ;Zeigt eine MessageBox
    Else
    MsgBox(0, "", "Checkbox1 wurde ausgekreuzt") ;Zeigt eine MessageBox
    EndIf
    EndFunc

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

    Func _Radio1()
    MsgBox(0, "", "Radio1 wurde angeklickt") ;Zeigt eine MessageBox
    EndFunc

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

    Func _Radio2()
    MsgBox(0, "", "Radio2 wurde angeklickt") ;Zeigt eine MessageBox
    EndFunc

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

    Func _List1()
    If GUICtrlRead($List1) <> "" Then
    MsgBox(0, "", GUICtrlRead($List1) & " in List1 wurde angeklickt") ;Zeigt eine MessageBox
    Else
    MsgBox(0, "", "List1 wurde angeklickt") ;Zeigt eine MessageBox
    EndIf
    EndFunc

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

    Func _Combo1()
    MsgBox(0, "", "Combo1 wurde in " & GUICtrlRead($Combo1) & " umgeändert") ;Zeigt eine MessageBox
    EndFunc

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

    Func _Pic1()
    MsgBox(0, "", "Pic1 wurde angeklickt") ;Zeigt eine MessageBox
    EndFunc

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

    Func _Updown1()
    MsgBox(0, "", "Updown1 wurde angeklickt und Input2 wurde der Wert " & GUICtrlRead($Input2) & " zugewiesen") ;Zeigt eine MessageBox
    EndFunc

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

    Func _Slider1()
    GUICtrlSetData($Label2, GUICtrlRead($Slider1))
    EndFunc

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

    Func _Label2()
    MsgBox(0, "", "Label2 wurde angeklickt") ;Zeigt eine MessageBox
    EndFunc

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

    Func _Date1()
    MsgBox(0, "", "Date1 wurde auf " & GUICtrlRead($Date1) & " gesetzt") ;Zeigt eine MessageBox
    EndFunc

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

    Func _MonthCal1()
    MsgBox(0, "", "Date1 wurde auf " & GUICtrlRead($MonthCal1) & " gesetzt") ;Zeigt eine MessageBox
    EndFunc

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

    Func _Tab1()
    MsgBox(0, "", "Tab1 wurde angeklickt") ;Zeigt eine MessageBox
    EndFunc

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

    Func _Button2()
    MsgBox(0, "", "Button2 wurde angeklickt") ;Zeigt eine MessageBox
    EndFunc

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

    Func _Button3()
    MsgBox(0, "", "Button3 wurde angeklickt") ;Zeigt eine MessageBox
    EndFunc

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

    Func _TrayRestore()
    TrayItemSetState($MenuItem5, 4) ;Entfernt das Häckchen das ensteht, wenn der Benutzer das Tray-Item anklickt
    GUISetState(@SW_SHOW) ;Diese Funktion zeigt das GUI-Fenster
    GUISetState(@SW_RESTORE) ;Diese Funktion stellt das GUI-Fenster wieder her
    EndFunc

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

    Func _TrayMinimize()
    TrayItemSetState($MenuItem7, 4) ;Entfernt das Häckchen das ensteht, wenn der Benutzer das Tray-Item anklickt
    GUISetState(@SW_MINIMIZE) ;Diese Funktion minimiert das GUI-Fenster
    EndFunc

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

    Func _TrayHide()
    TrayItemSetState($MenuItem6, 4) ;Entfernt das Häckchen das ensteht, wenn der Benutzer das Tray-Item anklickt
    GUISetState(@SW_HIDE) ;Diese Funktion versteckt das GUI-Fenster
    EndFunc

    [/autoit]

    Mehrere GUI's im GUIGetMsg()-Modus

    An dieser Stelle möche ich wiederholen, dass der OnEvent-Modus eine bessere Lösung ist, vorallem bei mehreren GUI's. Hier ein Beispiel für den GUIGetMsg()-Modus mit zwei GUI's (man kann selber nach dem Muster mehr erstellen):

    Beispiel für mehrere GUI's

    #include <GUIConstantsEx.au3>
    $GUI1 = GUICreate("GUI 1")
    $Button1 = GUICtrlCreateButton("GUI 2 anzeigen", 150, 150)
    GUISetState()

    $GUI2 = GUICreate("GUI 2")
    $Button2 = GUICtrlCreateButton("GUI 1 anzeigen", 150, 150)
    GUISetState(@SW_HIDE)

    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[1]
    Case $GUI1
    Switch $nMsg[0]
    Case $Button1
    _Button1()
    Case $GUI_EVENT_CLOSE
    _Exit()
    EndSwitch
    Case $GUI2
    Switch $nMsg[0]
    Case $Button2, $GUI_EVENT_CLOSE
    _Button2()
    EndSwitch
    EndSwitch
    WEnd

    Func _Exit()
    GUIDelete($GUI1)
    GUIDelete($GUI2)
    Exit
    EndFunc

    Func _Button1()
    GUISetState(@SW_SHOW, $GUI2)
    GUISetState(@SW_HIDE, $GUI1)
    EndFunc

    Func _Button2()
    GUISetState(@SW_SHOW, $GUI1)
    GUISetState(@SW_HIDE, $GUI2)
    EndFunc

    [autoit][/autoit]

    ~~~~~~~Ende~~~~~~~

    Ich freue mich auf Feedback und Verbesserungsvorschläge.

    Mit freundlichen Grüßen,
    BurakSZ

  • Wer noch kein GUI kann, wird deine Beispielscripts nicht verstehen. Mach lieber einfache, normale Beispielscripts, ohne besondere Sachen ;)
    Und Koda zu empfehlen, um GUI's zu erstellen ist auch nicht grad das wahre. Ohne Koda geht's besser.
    Außerdem solltest du noch ein bisschen hinzufügen ;) Du schreibst nichts, außer wie man ein GUI erstellt und wie man den OnEvent und message Modus nutzt. Aber wenn es ein Tut über GUI's sein soll, gehört da auch noch GUICtrlCreate... und so dazu ;)
    Naja, ist ja schön, dass du dir die Arbeit machst, aber glaubst du die, die ein GUI nicht hinbekommen, werden sich das durchlesen? xD

  • Wer noch kein GUI kann, wird deine Beispielscripts nicht verstehen. Mach lieber einfache, normale Beispielscripts, ohne besondere Sachen ;)
    Und Koda zu empfehlen, um GUI's zu erstellen ist auch nicht grad das wahre. Ohne Koda geht's besser.
    Außerdem solltest du noch ein bisschen hinzufügen ;) Du schreibst nichts, außer wie man ein GUI erstellt und wie man den OnEvent und message Modus nutzt. Aber wenn es ein Tut über GUI's sein soll, gehört da auch noch GUICtrlCreate... und so dazu ;)
    Naja, ist ja schön, dass du dir die Arbeit machst, aber glaubst du die, die ein GUI nicht hinbekommen, werden sich das durchlesen? xD

    [autoit]

    $GUI = GUICreate("Beispiel GUI") ;Diese Funktion erstellt ein GUI-Fenster
    GUISetState(@SW_SHOW, $GUI) ;Diese Funktion kann auch ohne Parameter angegeben werden, sie dient dazu das GUI-Fenster sichtbar zu machen

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

    While 1 ;Diese Schleife dient dazu, dass das GUI-Fenster unendlich lang offen bleibt, bis es vom Benutzer geschlossen wird. (Endlosschleife)
    Sleep(100) ;Diese Funktion bewirkt das das GUI immer wieder 100 Millisekunden wartet, da es eine Endlosschleife ist wartet das GUI unendlich lang, bis es vom Benutzer geschlossen wird.
    WEnd ;Diese Schleife schließt die Endlosschleife

    [/autoit]

    Was gibt es daran nicht zu verstehen?

    Und wenn du dir mal die Beispielskripts angeguckt hättest, würdest du sehen dass jede GUICtrl mit Erklärung (Kommentar) im Beispiel GUI aufgeführt werden.

  • Sorry dass OT, aber es tut meinem Auge weh: GUIs schreibt man ohne Apostroph. Ein Apostroph ist ein Auslassungszeichen, im Plural gibt es im deutschen kein Apostroph.

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • Ich meinte insbesondere das hier:


    Ist ja toll, das überall eine Erklärung hinter ist, aber erkläre lieber jedes Control, dass du verwendest einzeln ;)

  • Ich meinte insbesondere das hier:


    Ist ja toll, das überall eine Erklärung hinter ist, aber erkläre lieber jedes Control, dass du verwendest einzeln ;)

    Ich glaube kaum das es jemand der das GUI nicht hinbekommt, hier nicht die Hilfe aufgelistet bekommen will, denn das wäre nötig wenn ich jeden GUICtrlCreate... aufführe.

  • Wenn er nur wissen will, wie man ein GUI erstellt, dann brauch er nicht GUICtrlCreate... sondern nur GUICreate und nicht ein 218 Zeilen langes Beispiel ;)

    OMG wenn er kein GUICtrlCreate braucht dann soll er doch einfach das erste Beispielskript benutzen?!

    [autoit]

    $GUI = GUICreate("Beispiel GUI") ;Diese Funktion erstellt ein GUI-Fenster
    GUISetState(@SW_SHOW, $GUI) ;Diese Funktion kann auch ohne Parameter angegeben werden, sie dient dazu das GUI-Fenster sichtbar zu machen

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

    While 1 ;Diese Schleife dient dazu, dass das GUI-Fenster unendlich lang offen bleibt, bis es vom Benutzer geschlossen wird. (Endlosschleife)
    Sleep(100) ;Diese Funktion bewirkt das das GUI immer wieder 100 Millisekunden wartet, da es eine Endlosschleife ist wartet das GUI unendlich lang, bis es vom Benutzer geschlossen wird.
    WEnd ;Diese Schleife schließt die Endlosschleife

    [/autoit]
  • Naja, aber Sinn und Zweck von Guis ist es doch denk ich mal, dass man darauf dann letzendlich auch Controlls hat, auf denen der Benutzer seinen
    Senf zum Script dazugeben kann. Um das Prinzip zu erklären, ist es denk ich weniger sinnvoll den Leser mit Einem 200 Zeilenscript mit 1000 GuiBefehlen, die er noch nicht kennt, zuzuschütten.
    Lieber erstmal jedes Control einzeln erklären, dann Beispiel und dann Rießenbeispiel!

  • vllt hat er ja ein tutorial für etwas fortgeschrittene schreiben wollen

    ich hab noch nie den event mode ausprobiert

    nachdem ich das gelesen hab werd ich das ganz sicher mal machen

    also hat mir persönlich schonmal was genützt

  • Naja, aber Sinn und Zweck von Guis ist es doch denk ich mal, dass man darauf dann letzendlich auch Controlls hat, auf denen der Benutzer seinen
    Senf zum Script dazugeben kann. Um das Prinzip zu erklären, ist es denk ich weniger sinnvoll den Leser mit Einem 200 Zeilenscript mit 1000 GuiBefehlen, die er noch nicht kennt, zuzuschütten.
    Lieber erstmal jedes Control einzeln erklären, dann Beispiel und dann Rießenbeispiel!

    Das dumme ist ja, wenn ich jedes Control einzelnd aufführe, dass es keinen Unterschied macht dasselbe in der Hilfe einzugeben. Naja, ein tut. für fortgeschrittene ist es nicht wirklich ^^ ich hab das beispiel gemacht damit man sehen kann was für controls es gibt, wenn man die genauer erklärt haben will gibt man sie in der hilfe ein. wenn ich die hier aufführen wurde dann würde das wirklich keinen unterschied machen als in der hilfe.

  • naja, es gibt aber auch gewisse Dinge, die zumindest ich durch die Hilfe nicht kapier und immernoch nich kapiert hab, z.B. Diagramme und so in einer Gui (ohne GDI etc.) zu zeichnen, als ein Control...

  • Wie wärs wenn du einfach einmal
    GUICreate
    GUICtrlCreate...
    ...Button
    ...Label
    ...Input
    ...Edít

    erklärst?
    Das sind so erstmal die Grundlegenden Sachen die man verstehen sollte und das kommt aus deinem Tutorial nicht hervor.
    Dann kann man als Zusatz noch
    Listview und Listbox, sowie Combobox nehmen, dass sollte erstmal reichen.

    Aber den User mit einem Script mit Kommentaren zuzuschütten ist kein gutes Tutorial.
    Man sollte den User langsam daran führen und nicht einfach unter dem Motto:
    "Hier hast Script mit Kommentar."

    Ich persönlich hätte keine Lust mir dieses Monster Beispielscript anzugucken, da les ich lieber die Hilfe.

    Fazit:
    Dieses Tutorial ist noch stark verbesserungswürdig.