1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Moombas

Beiträge von Moombas

  • Buttons klickbar machen

    • Moombas
    • 28. Januar 2022 um 14:30

    Hi Casi,

    das pollen hat dir BugFix in Post #40 aufgezeigt: AdlibRegister Velted was schneller^^

    Googled man danach findet sich das hier: https://www.autoitscript.com/autoit3/docs/f…libRegister.htm

    Was dann im Endeffekt als Beispiel folgendes ergibt:

    AutoIt
    ;...
    Global Const $SQLLabel     = GUICtrlCreateLabel("CUSTOMIZING" & _StringRepeat(" ", 185) & "Local SQL-Server: SERVICE_UNKNOWN_STATE"    , 10, 35, 980, 20)
    Global Const $AppacheLabel = GUICtrlCreateLabel("CUSTOMIZING" & _StringRepeat(" ", 185) & "Local Appache-Server: SERVICE_UNKNOWN_STATE", 10, 35, 980, 20)
    ;...
    AdlibRegister(Request_Services, 60000) ;Refresh jede Minute
    ;...
    
    Func Request_Services() 
    Local $Services[][] = [['','',''], _
                           ['MSSQL'    , $SQLLabel    , "CUSTOMIZING" & _StringRepeat(" ", 185) & "Local SQL-Server: ", 'SERVICE_UNKNOWN_STATE'], _
                           ['Apache2.4', $AppacheLabel, "CUSTOMIZING" & _StringRepeat(" ", 185) & "Local SQL-Server: ", 'SERVICE_UNKNOWN_STATE']]
        $Services[0][0] = UBound($Services, $UBOUND_ROWS) - 1
        For $Row = 1 to $Services[0][0] Step +1
            if _Service_Exists($Services[$Row][0]) then
                $Services[$Row][3] = Status(_Service_QueryStatus($Services[$Row][0])[1])
            else
                $Services[$Row][3] = 'SERVICE_NOT_FOUND'
            endif
            GUICtrlSetData($Services[$Row][1], $Services[$Row][2] & $Services[$Row][3])
        Next
    endfunc
    Alles anzeigen

    Ohne Gewähr da nur zusammengeschustert ohne Test.

  • Buttons klickbar machen

    • Moombas
    • 27. Januar 2022 um 07:55

    Das stoppen des Dienstes würde im übrigen auch über die Services.au3 funktionieren...

    Schau dir mal die Services.au3 im Editor an, dann findest du auch die entsprechende Funktion.

    Und um den Status "live" zu machen, hat dir BugFix bereits einen Wink gegeben.

  • Buttons klickbar machen

    • Moombas
    • 26. Januar 2022 um 08:18

    Du wirst dein Script mit Request_Service(MSSQL) niemals compiliert bekommen haben!

    Warum? Weil er das MSSQL anmeckern wird.

    Warum? Weil er diesen Ausdruck so nicht kennt. Es geht nur so: Request_Service("MSSQL")

    Du übergibst einen String!

    ...

    Aber ab dieser Zeile werfe ich das Handtuch.

    Ich habe den Eindruck, das du dich selber kaum damit beschäftigst was da eigentlich Sache ist und wie etwas funktioniert und was ggf. zu beachten ist.

    Ich helfe wirklich gerne aber wenn am anderen Ende ein unbelehrbarer "Schüler" sitzt, hat es einfach keinen Sinn. (Ich weiß warum ich niemals Lehrer werden würde XD)

  • GUISetAccelerators ohne Wirkung

    • Moombas
    • 25. Januar 2022 um 15:46

    Wie gesagt GUI ist nicht ganz mein Thema. Meine idee wäre HotKeySet() zu nutzen aber ob das die Lösung ist weiß ich nicht.

  • GUISetAccelerators ohne Wirkung

    • Moombas
    • 25. Januar 2022 um 14:51

    Mit der Tastenfolge komme ich ins Menü. Also erst Alt und dann F (nicht gleichzeitig).

    Ich könnte mir vorstellen das du dafür auch Abfragen musst, aber wie gesagt ich mche in AutoIt zu wenig mit der GUI, das können andere besser.

  • GUISetAccelerators ohne Wirkung

    • Moombas
    • 25. Januar 2022 um 14:33

    Alle Variablen und Konstanten, die du außerhalb einer Funktion deklarierst (hier also z.B. alle GUI-Elemente), sind immer Global, egal wie du sie definierst.

    Daher würde ich das immer direkt richtig schreiben, dann gibt es später keine Verwirrung (in deinem ersten Post z.B. waren auch Local dazwischen).

  • GUISetAccelerators ohne Wirkung

    • Moombas
    • 25. Januar 2022 um 12:59

    Möp, ich habe die Frage falsch gelesen^^

    Ich habe verstanden das auch die Standard-GUI nicht funzt :rofl:

    Das was Bugfix schreibt ist dann natürlich Goldrichtig (werde es mal oben ergänzen). Dennoch kann ich nur weiterhin darauf hinweisen, die richtige Variablen bzw Konstanten Deklaration zu verwenden.

  • GUISetAccelerators ohne Wirkung

    • Moombas
    • 25. Januar 2022 um 12:44

    Ich weiß nur das viele Definitionen fehlen.

    Nur "Const" sollte man nicht verwenden, immer zusammen mit Locale oder Globale.

    Du verwendest Locale im Globalen Aspekt, was falsch ist.

    Nur shcon mal als erster Eindruck.

    Edit: Folgendes funktioniert bei mir Einwandfrei.

    AutoIt
    Opt('MustDeclareVars', 1)
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiRichEdit.au3>
    
    ; Programmfenster erstellen
    ; FrameGUI mit Menüzeile:
    Global $iMsg
    Global Const $hGUI = GUICreate( "Beispiel", 600, 417, Default, Default, Default, BitOR($WS_EX_COMPOSITED,$GUI_WS_EX_PARENTDRAG) )
    Global Const $FileMenu = GUICtrlCreateMenu( "File" )
    Global Const $FileExit = GUICtrlCreateMenuItem( "Exit"&@TAB&"Ctrl+X", $FileMenu )
    Global Const $ExportMenu = GUICtrlCreateMenu( "Export" )
    Global Const $ExportRawExport = GUICtrlCreateMenuItem( "Raw Export"&@TAB&"Ctrl+R", $ExportMenu )
    Global Const $ExportXMLExport = GUICtrlCreateMenuItem( "XML Export"&@TAB&"Ctrl+M", $ExportMenu )
    Global Const $HelpMenu = GUICtrlCreateMenu( "Help" )
    Global Const $Help = GUICtrlCreateMenuItem( "Help", $HelpMenu )
    Global Const $About = GUICtrlCreateMenuItem( "About", $HelpMenu )
    Global $aAccelTable[6][2] = [["{F1}", $Help],["!x", $FileExit],["^r", $ExportRawExport],["^m", $ExportXMLExport],["^a", $About],["^h", $HelpMenu]]
    GUISetAccelerators($aAccelTable, $hGUI)
    GUISetState( @SW_SHOW )
    
    ; Hauptfenster
    Global Const $hMainGUI = GUICreate( "", 600, 400, 0, 0, BitOR($WS_CHILD, $WS_VISIBLE), Default, $hGUI)
    Global $Label = GUICtrlCreateLabel( "Hier könnte Ihre Werbung stehen!", 10, 10, 250, 23 )
    GUICtrlSetFont( -1, 12, 400, 0, "Calibri" )
    Global Const $idExitBtn = GUICtrlCreateButton( "Exit", 270, 365, 75, 25 )
    Global $idMsgBox = _GUICtrlRichEdit_Create( $hMainGUI, "Messages and Errors", 355, 30, 235, 360, BitOR( $ES_READONLY, $ES_MULTILINE ) )
    GUISetState( @SW_SHOW )
    
    while 1
       $iMsg = GUIGetMsg()
       Switch $iMsg
          Case $GUI_EVENT_CLOSE, $idExitBtn, $FileExit
               ExitLoop
          Case $FileMenu 
          Case $FileExit 
          Case $ExportMenu 
          Case $ExportRawExport 
          Case $ExportXMLExport 
          Case $HelpMenu 
          Case $Help 
          Case $About 
          Case $idExitBtn
               ExitLoop ;Normalerweise würde ich hier einfach Exit verwenden, den Rest macht Autoit sonst selber.
       EndSwitch
    WEnd
    GUIDelete($hMainGUI)
    Alles anzeigen
  • Buttons klickbar machen

    • Moombas
    • 25. Januar 2022 um 10:24

    Hi,

    richtig "Locale" geht nur in einer Funktion, ansonsten sind sie trotz "Locale" Definition Global.

    Zum Einen müsste dein MSSQL ein String sein, also mit Anführungsstrichen: "MSSQL".

    Zum Anderen musst du sicherstellen, das der Dienst auch so heißt (kannst du in den Diensten (services.msc) nachschauen).

    Zu deinem Return: Nein das kannst du auch über die normalen GUI abfragen realisieren (hab da eine Lösung im Kopf, damit aber noch nie selber gearbeitet).

    Daher würde ich hierbei das Zepter gerne jemandem überlassen, der in AutoIt mehr mit GUI arbeitet als ich :)

  • Buttons klickbar machen

    • Moombas
    • 24. Januar 2022 um 14:58

    Eigentlich gibt es nur zwei Variablentypen: Local und Global und zusätzlich gibt es die Möglichkeit aus einer Variable, eine Konstante (Const) zu machen.

    Btw.: Wegen deines Dienstes mit der services.au3, die ich oben gepostet habe, mache ich das vom Pinzip her so:

    AutoIt
    Func Request_Service($Servicename)
        if _Service_Exists($Servicename)then 
            Return Status(_Service_QueryStatus($Servicename)[1])
        else
            Return 'Service does not exist'
        endif
    endfunc
    
    Func Status($Status)
        Switch $Status
            Case 1
                $Status = 'SERVICE_STOPPED'
            Case 2
                $Status = 'SERVICE_START_PENDING'
            Case 3
                $Status = 'SERVICE_STOP_PENDING'
            Case 4
                $Status = 'SERVICE_RUNNING'
            Case 5
                $Status = 'SERVICE_CONTINUE_PENDING'
            Case 6
                $Status = 'SERVICE_PAUSE_PENDING'
            Case 7
                $Status = 'SERVICE_PAUSED'
            Case Else
                $Status = 'SERVICE_UNKNOWN_STATE'
        EndSwitch
        Return($Status)
    EndFunc
    Alles anzeigen
  • Buttons klickbar machen

    • Moombas
    • 24. Januar 2022 um 11:54

    Ohne Bugfix's au3 schlecht machen zu wollen, nur eine Alternative:

    Für Dienste nutze ich die Services.au3 (müsste von engine sein). Hat bei mir bisher bei allen Anfragen problemlos funktioniert.

    Dateien

    SecurityConstants.au3 7,96 kB – 188 Downloads SecurityEx.au3 3,9 kB – 173 Downloads Services.au3 134 kB – 170 Downloads
  • Buttons klickbar machen

    • Moombas
    • 24. Januar 2022 um 10:31

    Ganz einfach, du benutzt die Variable $st auch außerhalb dieser Funktion.

    Aber da ich nun sehe wo du sie einsetzt musst du Zeile 29 löschen und Zeile 31 ändern: GUICtrlCreateLabel("CUSTOMIZING" & _StringRepeat(" ", 185) & "Local DB-Server: " & _SQL(), 10, 35, 980, 20)

    Weiterhin gewöhne dir Formatierungen und Einrückungen an.

    Auch scheint einiges keinen Sinn zu ergeben. Deine CheckX Funktion z.B. da ist die Abfrage nach $cGui[4] keinen Sinn, da du den gleichen Befehl auch ohne diese Bedingung ausführst. Siehe neue Verschachtelung im Code unten. Mein Fehler

    AutoIt
    Opt('MustDeclareVars', 1)
    #AutoIt3Wrapper_Au3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7
    ; Script Start - Add your code below here
    ;another fast hack by UEZ 2011
    #include-once
    #include <GDIPlus.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <WinApi.au3>
    #include <String.au3>
    #include "GUIBkImage.au3"
    #include <GuiCtrlSetOnHover_UDF.au3>
    
    Global $gMsg, $iPID
    Global $RBOX_EVENT_CLOSE = 1
    Global Const $ROUNDES = 20, $LastHwnd = 0
    Global Const $GUIBKCOLOR = 0xEEC591
    Global Const $ARRAY_COLOR_TOP_MIN[3] = [36 ,65 ,142] , $ARRAY_COLOR_TOP_MAX[3] = [11 ,42 ,122]
    Global Const $hGui = RBoxCreate("LAX -Version 4.0 Beta",840,600)
    Global Const $idButton_1 = GUICtrlCreateButton("Customize PC", 10, 55, 100, 20)
    GUICtrlSetTip( -1, "Standard Image an Benutzer anpassen")
    
    ;LABELS
    GUICtrlCreateLabel("CUSTOMIZING" & _StringRepeat(" ", 185) & "Local DB-Server: " & _SQL(), 10, 35, 980, 20)
    
    While True
        CheckX($hGui,$RBOX_EVENT_CLOSE,"GuiCtrlSetColor("&$RBOX_EVENT_CLOSE&",0xA3A3A3)","GuiCtrlSetColor("&$RBOX_EVENT_CLOSE&",0x555555)")
        $gMsg = GUIGetMsg()
        Switch $gMsg
            Case $GUI_EVENT_CLOSE, $RBOX_EVENT_CLOSE
                 GUIDelete($hGUI)
                 Exit
            Case $idButton_1
                 $iPID = Run("C:\Users\Administrator\Downloads\PC-Einrichtung\PCSETTING_listv2.cmd", "", 10)
        EndSwitch
    
        ;Checks
        _SQL() ;Sinn?
    WEnd
    
    Func RBoxCreate($Title,$width, $height ,$left=-1 ,$top=-1 ,$show=@SW_SHOW)
    Local $hTitle, $Graphic
    Local Const $GUI = GUICreate($Title, $width, $height, $left, $top, $WS_POPUP)
        GUISetBkColor($GUIBKCOLOR, $GUI)
        $RBOX_EVENT_CLOSE = GUICtrlCreateLabel('X', $width-20, 3, 25, 25)
        GUICtrlSetCursor ($RBOX_EVENT_CLOSE, 0)
        GUICtrlSetBkColor($RBOX_EVENT_CLOSE, -2)
        GUICtrlSetFont   ($RBOX_EVENT_CLOSE, 15, 800)
        GUICtrlSetColor  ($RBOX_EVENT_CLOSE, 0x555555)
    
        $Title &= " "
        $hTitle = GUICtrlCreateLabel($Title, 0, 0, $width-20, 26, $SS_CENTER, $GUI_WS_EX_PARENTDRAG)
        GUICtrlSetFont   ($hTitle, 17, 400, 0, "Consolas")
        GUICtrlSetBkColor($hTitle, -2)
    
        $Graphic = GUICtrlCreateGraphic (0,0, $width, 25)
        GUICtrlSetState($Graphic, $Gui_DISABLE)
    
        GUISetState($show, $GUI)
        Return $GUI
    EndFunc
    
    Func CheckX($hGui, $CtrlID, $sCMD, $eCMD) ;hier würde ich verschachteln und du hast keinen "else" fall, also einen undefinierten Fall.
    Local Const $cGui = GUIGetCursorInfo($hGui)
        If IsArray($cGui) Then
            if $LastHwnd <> $cGui[4] Then
                if $cGui[4] = $CtrlID Then
                    Return Execute($sCMD) + Assign("LastHwnd",$cGui[4])
                Else
                    Return Execute($eCMD) + Assign("LastHwnd",$cGui[4])
                EndIf
            Else
                SetError(1)
                Return False
            EndIf
        Else
            SetError(0)
            Return False
        EndIf
    EndFunc
    
    Func _SQL()
    Local $st, $FileText
    Local Const $SeviceName = "SQL Server (AUGIAS)" ;name of the service to test
        RunWait(@ComSpec & " /c net start > c:\temp\services.txt", "", @SW_HIDE);send a list of the services that are running to a file
        if @error = 0 then
            $FileText = FileRead("c:\temp\services.txt", FileGetSize("c:\temp\services.txt"));read that file
            If StringInStr($FileText, $SeviceName) Then;check for the service name
                $st = "RUNNING"
            Else
                $st = "OFF"
            EndIf
            Return $st
        Else
            Return 'ERROR'
        Endif
    EndFunc   ;==>_test
    Alles anzeigen
  • Buttons klickbar machen

    • Moombas
    • 24. Januar 2022 um 07:59

    Die Fehlermeldung besagt du hast dein Variable benutzt ohne sie als Local bzw. Global zu definieren also:

    AutoIt
    Local $st

    Und den Beweis sehe ich hier:

    AutoIt
    Func _SQL()
      $SeviceName = "SQL Server (AUGIAS)" ;name of the service to test
      RunWait(@ComSpec & " /c net start > c:\temp\services.txt", "", @SW_HIDE);send a list of the services that are running to a file
      $FileText = FileRead("c:\temp\services.txt", FileGetSize("c:\temp\services.txt"));read that file
      If StringInStr($FileText, $SeviceName) Then;check for the service name
        $st = "RUNNING"
      Else
        $st = "OFF"
      EndIf
    EndFunc   ;==>_test

    $st wird nicht definiert und du übergibst den Wert auch nicht wieder!

    Das gleiche betrifft ggf. auch $ServiceName und $FileText. Richtig wäre nun so:

    Code
    Func _SQL()
    Local $st ;fehlt! und ich würde es hier direkt als = False setzen!
    Local $FileText ;fehlt!
    Local Const $SeviceName = "SQL Server (AUGIAS)" ;name of the service to test ; Local Const fehlte
      RunWait(@ComSpec & " /c net start > c:\temp\services.txt", "", @SW_HIDE);send a list of the services that are running to a file
      ;hier würde eine Prüfung Sinn machen
      $FileText = FileRead("c:\temp\services.txt", FileGetSize("c:\temp\services.txt"));read that file
      If StringInStr($FileText, $SeviceName) Then;check for the service name
        $st = "RUNNING" ;ich würde True wählen
      Else
        $st = "OFF" ; ich würde False wählen
      EndIf
      Return $st
    EndFunc   ;==>_test
    Alles anzeigen

    Und der Aufruf wäre dann Sinnvoll so (wenn man True und False verwendet): if _SQL() then


    Das sind alles Sachen die der Gründlichkeit zu Grunde liegen und hier bereits angesprochen wurden.

  • Buttons klickbar machen

    • Moombas
    • 21. Januar 2022 um 15:28

    Ich denke du willst zu viel auf einmal.

    Fang nochmal step by step an:

    1. Simple GUI bauen incl. der While Schleife (ohne Aktionen/Funktionen! einzubauen!)

    2. Prüfen & korrigieren

    3. 1 Button mit einer Funktion verknüpfen.

    4. Prüfen & korrigieren

    etc.

    Der ganze Kram mit den Farben und CheckX & SQL sind spielereien für den späteren Feinschliff und solltest du erst mal weg lassen und erst umsetzen wenn deine GUI läuft.

    Ggf. Triggerst du auch irgendwie das "Else" im Switch-Part, nehm dort mal das Exit raus bzw. den Else Zweig komplett und setze das Exit bei deinem ersten Case ein.

    Und nochmal ein funktionierendes Beispiel (ganz frisch):

    AutoIt
    While 1
        Switch _ExtMsgBox(0, "PC to Network|Network to PC|Cancel", "Replicate", "What do you want to replicate?")
            Case 1
                ;PC to Network (Replicate)
                Replicate('PtN')
            Case 2
                ;Network to PC (Restore)
                Replicate('NtP')
            Case Else
                Exit
        EndSwitch
    WEnd
    Alles anzeigen
  • Buttons klickbar machen

    • Moombas
    • 21. Januar 2022 um 14:21

    Ohjee, so wird das nix!

    Versuch das mal so und schau dir den Aufbau mal genau an.

    AutoIt
    Local $iPID = 0
        While 1
            Switch GUIGetMsg()
                Case $idButton_1
                    ;  Run Notepad with the window maximized.
                    $iPID = Run("C:\Users\Administrator\Downloads\PC-Einrichtung\PCSETTING_listv2.cmd", "", 10)
                Case $idButton_2
                    $iPID = SoundPlay ( "C:\Users\xyz\Music\AUDIO\sampler\abc.wav")
                Case $idButton_3
                    $prog = ShellExecute("C:\Server\bin\Apache24\conf\httpd.conf")
            Case Else
                Exit
            EndSwitch
        WEnd
    Alles anzeigen

    Nachtrag:

    Alle deine Local Variablen, die außerhalb einer Funktion definiert wurden, sind Global!

    Ich empfehle dir folgendes in deine Skripte einzubauen:

    Code
    Opt('MustDeclareVars', 1)
    #AutoIt3Wrapper_Au3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7

    Das prüft solche Sachen und zwingt dich auch dazu Variablen zu definieren bevor du sie benutzt etc..

  • Buttons klickbar machen

    • Moombas
    • 21. Januar 2022 um 12:34

    1. Dein "Switch" vor der Switch-Routine fehlt

    2. Das "Else" muss ein "Case Else" sein

    Teste dann nochmal.

  • Zum Programmanfang zurückkehren...

    • Moombas
    • 20. Januar 2022 um 15:56

    Dürfte doch vom Prinzip nur so sein:

    Zitat
    1. Schleife in der auf GUI Eingaben geprüft wird.
    2. Bei Eingabe über GUI start des 1. Funktionsaufrufs (dieser setzt als erste Tätigkeit die Default Werte für die Global Variablen, Global Const bleibt ja bestehen, Locale Variablen werden eh mit jedem Funktionsaufruf neu gesetzt je nach definition/initialisierung)
    3. Wenn dieser erfolgreich war am Ende in den ggf. 2. Funktionsaufruf (dies dann so immer weiter bis zum X-ten)
    4. Am Ende bzw. bei Fehler oder Abbruch: Ende der Verschachtelten Aufrufe und somit wieder zurück in der Schleife
  • Zum Programmanfang zurückkehren...

    • Moombas
    • 20. Januar 2022 um 11:44

    Ich würde das von water ein wenig abwandeln:

    Zitat von water

    Hier noch ein paar Anmerkungen:

    • Globale Variablen sollte man im Skript nicht mehrfach definieren. Das ist unnötig und schlechter Programmierstil
    • Definiere ALLE Globalen Variablen am Beginn des Skriptes. Setze einen Initialwert nur für jene Variablen, die nicht zurückgesetzt werden müssen
    • Definiere Globale "Variablen" als CONST, wenn sie ihren Wert nie ändern sollen
    • Alle anderen Globalen Variablen setzt Du in der Neustart Funktion bzw. die Lokalen in den jeweiligen Funktionen. (Somit musst Du diese Werte nur an einer Stelle im Skript pflegen)
      • Die Anzahl der globalen Variablen sollte man meiner Meinung nach se klein wie nötig halten.
    • Die Funktion Neustart rufst Du zu Beginn des Skriptes 1x auf.

    Mehr Anmerkungen folgen.

  • Es wird gejammert!

    • Moombas
    • 19. Januar 2022 um 14:42

    Ich schon^^

  • IniWrite Problem

    • Moombas
    • 17. Januar 2022 um 10:55

    Du musst dir das nicht mal generell merken (was so etwas angeht), sondern eher versuchen anzugewöhnen Sachen, die an einem festen Ort liegen auch entsprechend zu definieren und dem Programm nicht die Möglichkeit zu geben durch Workingdir etc. dir da einen Strich durch die Rechnung zu machen.

    Auch würde ich, wie bereits im vorigen Beitrag erwähnt, solche Variablen als Global Const setzen und darauf zugreifen, dann können sie auch nicht im laufenden Script durch Funktionen etc. verändert werden.

    Also anstatt dem "\test.ini", das du 3mal in deinem Script hast, lieber Global Const $IniFile = @ScriptDir & "\test.ini" und dann diese Konstante einsetzen.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™