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. Oscar

Beiträge von Oscar

  • Combobox mit mehreren Spalten

    • Oscar
    • 25. Juni 2024 um 16:32
    Zitat von atomas

    Besten Dank, ich werde mal schauen ob ich das erweitern kann, so wie ich das möchte.

    Gern geschehen!

    Ja, es kommt noch darauf an, was Du mit dem Listview vor hast. Wenn es nicht nur eine Auswahlbox sein soll, muss man da evtl. noch zusätzliche GUI-Elemente ein-/ausblenden.

    Wenn Du Hilfe brauchst, sag Bescheid!

  • RichEdit Hyperlinks

    • Oscar
    • 24. Juni 2024 um 17:23

    Mit dem Beispiel aus der Hilfe funktioniert es:

    AutoIt
    #include <GuiRichEdit.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WinAPIShellEx.au3>
    #include <MsgBoxConstants.au3>
    
    
    Global $hWh = GUICreate("RichEdit Link Test", 600, 400)
    Global $hRichEdit = _ChatBoxCreate($hWh, 10, 10, 580, 380)
    GUISetState()
    
    $data = "Hier ist ein Link: https://www.autoit.de" & @CRLF
    _ChatBoxAdd($hRichEdit, $data)
    
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			ExitLoop
    	EndSwitch
    	Sleep(10)
    WEnd
    
    _GUICtrlRichEdit_Destroy($hRichEdit)
    GUIDelete($hWh)
    Exit
    
    Func _ChatBoxCreate($gui, $x = 0, $y = 0, $w = 100, $h = 100)
    	$hRichEdit = _GUICtrlRichEdit_Create($gui, "", $x, $y, $w, $h, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
    	_GUICtrlRichEdit_AutoDetectURL($hRichEdit, True)
    	_GUICtrlRichEdit_SetEventMask($hRichEdit, $ENM_LINK) ; Setze das Ereignismask, um Link-Benachrichtigungen einzuschließen
    	GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    	Return $hRichEdit
    EndFunc   ;==>_ChatBoxCreate
    
    Func _ChatBoxAdd($box, $txt)
    	_GUICtrlRichEdit_AppendText($box, $txt)
    EndFunc   ;==>_ChatBoxAdd
    
    Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
    	#forceref $hWnd, $iMsg, $wParam, $lParam
    	; Struktur für NMHDR
    	Local $tNMHDR = DllStructCreate("struct;hwnd hWndFrom;uint_ptr idFrom;int code;endstruct", $lParam)
    	Local $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    	Local $iCode = DllStructGetData($tNMHDR, "code")
    	If $hWndFrom = $hRichEdit And $iCode = $EN_LINK Then
    		$tMsgFilter = DllStructCreate($tagMSGFILTER, $lParam)
    		If DllStructGetData($tMsgFilter, "msg") = $WM_LBUTTONUP Then
    			$tEnLink = DllStructCreate($tagENLINK, $lParam)
    			$iCpMin = DllStructGetData($tEnLink, "cpMin")
    			$iCpMax = DllStructGetData($tEnLink, "cpMax")
    			ConsoleWrite("Hyperlink: " & _GUICtrlRichEdit_GetTextInRange($hRichEdit, $iCpMin, $iCpMax) & @CRLF)
    		EndIf
    	EndIf
    EndFunc   ;==>WM_NOTIFY
    Alles anzeigen
  • Combobox mit mehreren Spalten

    • Oscar
    • 23. Juni 2024 um 14:44

    Ich hatte gerade mal Lust sowas zu programmieren:

    AutoIt
    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <StructureConstants.au3>
    #include <WindowsConstants.au3>
    
    Opt('GUIOnEventMode', 1)
    
    Global $g_bShowLV = False
    
    Global $g_hGui = GUICreate('test', 800, 480)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_CloseGui')
    Global $g_idCombo = GUICtrlCreateCombo('', 10, 10, 100, 25, BitOR($CBS_DROPDOWNLIST, $CBS_AUTOHSCROLL, $WS_VSCROLL))
    
    Global $g_idLV = GUICtrlCreateListView('Hersteller|Artikel|Preis|Bestand', 10, 33, 780, 440)
    GUICtrlCreateListViewItem('AMD|AMD Ryzen 5|128.00|328', $g_idLV)
    GUICtrlCreateListViewItem('AMD|AMD Ryzen 7|198.00|58', $g_idLV)
    GUICtrlCreateListViewItem('Intel|Intel Celeron G5900|211.00|167', $g_idLV)
    GUICtrlSetState($g_idLV, $GUI_HIDE)
    
    GUISetState(@SW_SHOW, $g_hGui)
    GUIRegisterMsg($WM_COMMAND, '_WM_COMMAND')
    GUIRegisterMsg($WM_NOTIFY, '_WM_NOTIFY')
    
    WinWaitClose($g_hGui)
    
    Func _CloseGui()
    	GUIDelete($g_hGui)
    EndFunc   ;==>_CloseGui
    
    Func _WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
    	#forceref $hWnd, $iMsg, $wParam
    	Local $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
    	Local $hWndFrom = HWnd(DllStructGetData($tNMHDR, 'hWndFrom'))
    	Local $iCode = DllStructGetData($tNMHDR, 'Code')
    	Local $tItemActivate, $sItem
    	Switch $hWndFrom
    		Case GUICtrlGetHandle($g_idLV)
    			Switch $iCode
    				Case $NM_CLICK
    					$tItemActivate = DllStructCreate($tagNMITEMACTIVATE, $lParam)
    					$sItem = _GUICtrlListView_GetItemTextString($g_idLV, $tItemActivate.index)
    					GUICtrlSetState($g_idLV, BitOR($GUI_HIDE, $GUI_FOCUS))
    					$g_bShowLV = False
    					ConsoleWrite('Listview CLICK Index:' & $tItemActivate.index  & ' "' & $sItem & '"' & @CRLF)
    			EndSwitch
    	EndSwitch
    	Return $GUI_RUNDEFMSG
    EndFunc
    
    Func _WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
    	#forceref $hWnd, $iMsg, $lParam
    	Local $iIDFrom = BitAND($wParam, 0xFFFF)
    	Local $iCode = BitShift($wParam, 16)
    	Switch $iIDFrom
    		Case $g_idCombo
    			Switch $iCode
    				Case $CBN_DROPDOWN
    					GUICtrlSetState($g_idLV, $g_bShowLV ? BitOR($GUI_HIDE, $GUI_FOCUS) : BitOR($GUI_SHOW, $GUI_FOCUS))
    					ConsoleWrite('Combo DROPDOWN, LV-State:' & $g_bShowLV & @CRLF)
    					$g_bShowLV = Not $g_bShowLV
    			EndSwitch
    	EndSwitch
    	Return $GUI_RUNDEFMSG
    EndFunc   ;==>_WM_COMMAND
    Alles anzeigen

    Wobei ich jetzt doch kein Child-Window benutzt habe, sondern das Listview nur anhand des Status der Combobox angezeigt/versteckt habe.

  • Combobox mit mehreren Spalten

    • Oscar
    • 21. Juni 2024 um 18:29

    Sag Bescheid, wenn Du Hilfe brauchst!

  • Combobox mit mehreren Spalten

    • Oscar
    • 21. Juni 2024 um 11:58
    Zitat von atomas

    In der Combobox steht dann z. B. Intel und im Feld daneben steht die CPU, kann ich diese Anzeige auch mit

    Autoit realisieren?

    Als Combobox nicht, aber als Listview in einem Child-Window wäre sowas möglich.

  • Label ausdrucken

    • Oscar
    • 20. April 2024 um 13:44

    Das Label an sich ist ja eher simpel aufgebaut. Das kann man per GDI+ schnell mal dynamisch erstellen.

    Mit dem ausdrucken ist es dann aufwendiger. Ob es da in AutoIt eine UDF gibt, weiß ich jetzt nicht. Ansonsten z.B. IrfanView fernsteuern.

  • Community Projekt: Teil 3 - Onboarding, Erklärvideos (ggf. Videocalls)

    • Oscar
    • 2. Februar 2024 um 08:24

    [verschoben]

  • Community Projekt: Teil 1 - Interesse an einem gemeinsamen größeren (Software)Projekt?

    • Oscar
    • 30. Januar 2024 um 11:48

    Ich hab's mal verschoben.

  • ASCII-Art

    • Oscar
    • 27. Januar 2024 um 15:52
    Zitat von Musashi

    mit einem Papierlocher ein halbes Loch auf der anderen Seite einzustanzen. Dann konnte man sie doppelseitig verwenden.

    Es gab sogar "Diskettenlocher" zu kaufen, die genau an der richtigen Stelle ein eckiges Loch stanzten.

    Die eigentlich einseitigen Disketten waren auf dem C64 auf jeden Fall auch beidseitig nutzbar. Habe ich damals dutzendweise gemacht.

  • Eigene Verschlüsselungsroutine

    • Oscar
    • 11. Januar 2024 um 18:03
    Zitat von Alina

    Das geht nicht. Dann würde ich ja meine eigene Ver- und Entschlüsselungsroutine verraten.

    Was bringt dann Deine eigene Routine, wenn Du das AutoIt-Script niemanden geben kannst?

    Nur, um eigene Texte/Dateien zu verschlüsseln?

    Und überhaupt: "Security by obscurity" ist ein ganz schlechter Ansatz für eine solche Routine.

  • "?" in Ordner- bzw. Dateinamen

    • Oscar
    • 14. Dezember 2023 um 16:44
    Zitat von entsel

    Fazit: Möglicherweise ist das, was in den JPG-Daten wie ein Datum aussieht nicht zwingend nur ein Datum (da könnte noch was dran hängen?).

    Wenn das eine Frage ist, dann poste bitte Dein Script (plus die von Dir verwendete UDF "_GetExtProperty"), sowie eine JPG-Datei, bei der ein "falsches" Datum zurückgegeben wird.

    Eventuell haben wir dann alle etwas von diesem Thread.

  • Den Zeitpunkt des letzten Herunterfahrens auslesen

    • Oscar
    • 7. Dezember 2023 um 16:47

    Hier nochmal in einer Funktion, die Datum und Zeit in den DateTime-String umwandelt, sodass man das gleich an _DateAdd(), _DateDiff() usw. übergeben kann.

    AutoIt
    #include <EventLog.au3>
    #include <Array.au3>
    
    Global $hEventLog = _EventLog__Open("", "System")
    Global $i = 0, $aEvent
    Do
    	$aEvent = _EventLog__Read($hEventLog, True, False, $i)
    	If $aEvent[0] = False Then ExitLoop
    	If $aEvent[6] = 6006 Then ExitLoop
    	$i += 1
    Until 0
    _EventLog__Close($hEventLog)
    Global $sDateTime = _DateAndTimeToDateTime($aEvent[2], $aEvent[3])
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sDateTime = ' & $sDateTime & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    
    Func _DateAndTimeToDateTime($sDate, $sTime)
    	Local $sD = StringRegExpReplace($sDate, '(\d{2})/(\d{2})/(\d{4})', ' $3/$1/$2')
    	Local $aT = StringRegExp($sTime, '(.{2})[: ]', 3)
    	$aT[0] += (StringRight($sTime, 2) = 'PM') ? 12 : 0
    	If $aT[0] = 12 Then $aT[0] = 0
    	Return StringFormat('%s %02i:%02i:%02i', $sD, $aT[0], $aT[1], $aT[2])
    EndFunc
    Alles anzeigen
  • Aus Dateiname Ordner erstellen

    • Oscar
    • 1. Dezember 2023 um 16:48

    Bitte das Script posten, bei dem diese Fehlermeldung auftritt!

  • Aus Dateiname Ordner erstellen

    • Oscar
    • 1. Dezember 2023 um 08:48

    Nun, ebenso kurz wie die Frage: mit DirCreate.

    Wenn Du mehr Informationen lieferst, kann man auch mehr Hilfe anbieten.

    - Welche Dateinamen?

    - Mit/ohne Dateiendung?

    - Wo sollen die Ordner erstellt werden?

    - Als Unterordner von welchem Ordner?

    - Dynamisch oder nur einmalig?

  • Zeiten subtrahieren

    • Oscar
    • 19. November 2023 um 17:19

    Ich würde es so machen:

    AutoIt
    #include <Array.au3>
    
    Local $aInput[] = ["01:30:00", "-00:30:00", "02:00:00", "-01:00:00"]
    ;~ _ArrayDisplay($aInput)
    
    Local $Summe = _Timeradd($aInput)
    Msgbox(1,"",$Summe)
    
    Func _Timeradd(ByRef $aInput)
        Local $iSec
        For $i = 0 To UBound($aInput) - 1
            $iSec += _TimeToSec($aInput[$i])
        Next
        Return _SecToTime($iSec)
    EndFunc
    
    Func _TimeToSec(ByRef $sTime)
        Local $aTmp, $iSign, $iSec
        $iSign = (StringLeft($sTime, 1) == '-') ? -1 : 1
        $aTmp = StringSplit(StringRight($sTime, 8), ':', 2)
        $iSec = $aTmp[0] * 3600 + $aTmp[1] * 60 + $aTmp[2]
        Return $iSec * $iSign
    EndFunc
    
    Func _SecToTime($iSec)
        Local $iHour, $iMin, $iSign = $iSec < 0 ? '-' : ''
        $iHour = Int($iSec / 3600)
        $iSec = Mod($iSec, 3600)
        $iMin = Int($iSec / 60)
        $iSec = Mod($iSec, 60)
        Return $iSign & StringFormat('%02i:%02i:%02i', Abs($iHour), Abs($iMin), Abs($iSec))
    EndFunc
    Alles anzeigen
  • Wieder mal Declaration von Variablen

    • Oscar
    • 12. November 2023 um 13:08

    Globale Variablen sollte man generell nicht innerhalb von Funktionen deklarieren, sondern immer im Hauptscript und dann auf jeden Fall vor dem ersten Funktionsaufruf.

  • Ich habe einen Plan - bräuchte aber BITTE Eure Hilfe..

    • Oscar
    • 21. Oktober 2023 um 10:39

    Ein Input- oder Editcontrol kann auch scrollbar sein und markieren geht sowol mit Tasten und mit der Maus.

  • Variable in Array-Namen möglich?

    • Oscar
    • 2. Oktober 2023 um 08:47

    Das scheint mir doch eher ein XY-Problem zu sein.

    Beschreib doch mal, was Du erreichen willst und wie die Ausgangsdaten (bitte Beispieldaten beifügen!) aussehen.

  • Analyse von Daten

    • Oscar
    • 29. September 2023 um 18:04
    Zitat von Alina

    ich nehme das Return $aFrequency und schreibe es weg, aber nee, das möchte nicht so wie ich. Also gar nicht.

    Versuch's mal so:

    AutoIt
    #include <Array.au3>
    #include <AutoItConstants.au3>
    #include <FileConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    
    #Region ### START Koda GUI section ### Form=
    Global $Form1 = GUICreate("Form1", 1080, 610)
    Global $Input1 = GUICtrlCreateInput("Ich bin eine Testnachricht.", 5, 5, 1000, 20)
    Global $Input2 = GUICtrlCreateInput("339499542504568557573498571424356429481419498666371439578426583629574422585557423487", 5, 30, 1000, 20)
    Global $Teiler = GUICtrlCreateLabel("Teiler", 5, 75, 25, 25)
    Global $aButton[10], $aText = StringSplit('1|2|3|4|5|6|7|8|9|10', '|', 2)
    For $i = 0 To 9
        $aButton[$i] = GUICtrlCreateButton($aText[$i], 35 + 25 * $i, 65, 25, 25)
    Next
    Global $Button11 = GUICtrlCreateButton("Analyse starten", 350, 65, 155, 25)
    Global $aListview[10], $aText = StringSplit('1er|2er|3er|4er|5er|6er|7er|8er|9er|10er', '|', 2)
    For $i = 0 To 9
        $aListview[$i] = GUICtrlCreateListView($aText[$i], 10 + 105 * $i, 100, 100, 500)
    Next
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    Global $nMsg, $sNumbers, $laenge, $iIndex, $bTT, $iTimer
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
            Case $aButton[0] To $aButton[9]
                $iIndex = $nMsg - $aButton[0]
                _WriteLVtoFile($aListview[$iIndex], @ScriptDir & '\' & $aText[$iIndex] & '.txt')
            Case $Button11
                $sNumbers = GUICtrlRead($Input2)
                $laenge = StringLen($sNumbers)
                For $i = 0 To 9
                    _GUICtrlListView_DeleteAllItems($aListview[$i])
                    If ($i = 0) Or (Not Mod($laenge, $i + 1)) Then
                        GUICtrlSetBkColor($aButton[$i], 0x00FF00) ; Grün
                        _AddToListview($aListview[$i], $sNumbers, $i + 1)
                    Else
                        GUICtrlSetBkColor($aButton[$i], 0xFF0000) ; Rot
                    EndIf
                Next
        EndSwitch
        If $bTT Then
            If TimerDiff($iTimer) > 3000 Then
                $bTT = False
                ToolTip('')
            EndIf
        EndIf
    WEnd
    
    Func _WriteLVtoFile($idListview, $sFilename)
        Local $iCount = _GUICtrlListView_GetItemCount($idListview)
        If $iCount = 0 Then Return
        Local $hFile = FileOpen($sFilename, $FO_OVERWRITE)
        If $hFile = -1 Then Return
        For $i = 0 To $iCount - 1
            FileWriteLine($hFile, _GUICtrlListView_GetItemText($idListview, $i))
        Next
        FileClose($hFile)
        Local $aPos = MouseGetPos()
        ToolTip($sFilename & ' wurde gespeichert!', $aPos[0], $aPos[1], 'Daten-Analyse', $TIP_INFOICON, $TIP_BALLOON)
        $iTimer = TimerInit()
        $bTT = True
    EndFunc
    
    Func _AddToListview($idListview, $sInput, $iChar)
        Local $aFrequency = _CreateArray($sInput, $iChar)
        For $i = 0 To UBound($aFrequency) - 1
            GUICtrlCreateListViewItem($aFrequency[$i][0] & ' : ' & $aFrequency[$i][1], $idListview)
        Next
        _GUICtrlListView_SetColumnWidth($idListview, 0, $LVSCW_AUTOSIZE)
    EndFunc
    
    Func _CreateArray($sInput, $iChar)
        Local $mFreq[]
        $sInput = StringRegExpReplace($sInput, "[^0-9]", "") ; Trennzeichen und Leerzeichen entfernen
    
        For $i = 0 To StringLen($sInput) - $iChar Step $iChar
            $mFreq[StringMid($sInput, $i + 1, $iChar)] += 1
        Next
        Local $aKeys = MapKeys($mFreq), $iCnt = UBound($aKeys), $aFrequency[$iCnt][2]
        For $i = 0 To $iCnt - 1
            $aFrequency[$i][0] = $aKeys[$i]
            $aFrequency[$i][1] = $mFreq[$aKeys[$i]]
        Next
        _ArraySort($aFrequency, 1, 0, 0, 1)
        Return $aFrequency
    EndFunc
    Alles anzeigen
  • Analyse von Daten

    • Oscar
    • 26. September 2023 um 17:00
    Zitat von Alina

    Aber wenn ich z. B. nur hinten eine 0 einfüge und nochmals auf den Button drücke, leert er die Spalten nicht, wo es durch die zusätzloche 0, ja evtl. keinen Teiler gibt.

    Ja, stimmt!

    Es werden nur die Listviews geleert, die neu gefüllt werden.

    Dann muss der Befehl eben oben in die Schleife:

    AutoIt
    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    
    #Region ### START Koda GUI section ### Form=
    Global $Form1 = GUICreate("Form1", 1080, 610)
    Global $Input1 = GUICtrlCreateInput("Ich bin eine Testnachricht.", 5, 5, 1000, 20)
    Global $Input2 = GUICtrlCreateInput("339499542504568557573498571424356429481419498666371439578426583629574422585557423487", 5, 30, 1000, 20)
    Global $Teiler = GUICtrlCreateLabel("Teiler", 5, 75, 25, 25)
    Global $aButton[10], $aText = StringSplit('1|2|3|4|5|6|7|8|9|10', '|', 2)
    For $i = 0 To 9
        $aButton[$i] = GUICtrlCreateButton($aText[$i], 35 + 25 * $i, 65, 25, 25)
    Next
    Global $Button11 = GUICtrlCreateButton("Analyse starten", 350, 65, 155, 25)
    Global $aListview[10], $aText = StringSplit('1er|2er|3er|4er|5er|6er|7er|8er|9er|10er', '|', 2)
    For $i = 0 To 9
        $aListview[$i] = GUICtrlCreateListView($aText[$i], 10 + 105 * $i, 100, 100, 500)
    Next
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    Global $nMsg, $sNumbers, $laenge
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
            Case $Button11
                $sNumbers = GUICtrlRead($Input2)
                $laenge = StringLen($sNumbers)
                For $i = 0 To 9
                    _GUICtrlListView_DeleteAllItems($aListview[$i])
                    If ($i = 0) Or (Not Mod($laenge, $i + 1)) Then
                        GUICtrlSetBkColor($aButton[$i], 0x00FF00) ; Grün
                        _AddToListview($aListview[$i], $sNumbers, $i + 1)
                    Else
                        GUICtrlSetBkColor($aButton[$i], 0xFF0000) ; Rot
                    EndIf
                Next
        EndSwitch
    WEnd
    
    Func _AddToListview($idListview, $sInput, $iChar)
        Local $aFrequency = _CreateArray($sInput, $iChar)
        For $i = 0 To UBound($aFrequency) - 1
            GUICtrlCreateListViewItem($aFrequency[$i][0] & ' : ' & $aFrequency[$i][1], $idListview)
        Next
        _GUICtrlListView_SetColumnWidth($idListview, 0, $LVSCW_AUTOSIZE)
    EndFunc
    
    Func _CreateArray($sInput, $iChar)
        Local $mFreq[]
        $sInput = StringRegExpReplace($sInput, "[^0-9]", "") ; Trennzeichen und Leerzeichen entfernen
    
        For $i = 0 To StringLen($sInput) - $iChar Step $iChar
            $mFreq[StringMid($sInput, $i + 1, $iChar)] += 1
        Next
        Local $aKeys = MapKeys($mFreq), $iCnt = UBound($aKeys), $aFrequency[$iCnt][2]
        For $i = 0 To $iCnt - 1
            $aFrequency[$i][0] = $aKeys[$i]
            $aFrequency[$i][1] = $mFreq[$aKeys[$i]]
        Next
        _ArraySort($aFrequency, 1, 0, 0, 1)
        Return $aFrequency
    EndFunc
    Alles anzeigen

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™