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

Beiträge von Simpel

  • Uralter Beitrag..... Fehlermeldung exe/au3 Zeilennummerndifferenz

    • Simpel
    • 26. Juni 2019 um 09:38

    Moin.

    Mit den folgenden Zeilen erhalte ich eine _stripped.au3, deren Zeilennummern mit den Fehlernummern übereinstimmen:

    Code
    #AutoIt3Wrapper_Run_Au3Stripper=y
    #Au3Stripper_Parameters=/mo
  • Run versus RunWait

    • Simpel
    • 5. September 2018 um 13:53

    Moin.

    Im Moment in dem RunWait beendet wird ist die PID des Prozesses nicht mehr existent sondern ist der Returnwert des sich gerade beendenden Prozesses. Und die WhileWEnd-Schleife geht erst los, wenn der Prozesse, der durch RunWait gestartet wird erst beendet ist. Lies mal in der Hilfe zu RunWait nochmal ganz genau rein, um den Unterschied zu verstehen.

    Gruß, Simpel

  • Drucker installieren

    • Simpel
    • 3. September 2018 um 09:30

    Moin.

    Ich habe öfter das Problem, wenn ich auf der Arbeit für 'ne Zeit den Ort und damit die Domain wechsle, dass alle meine installierten Netzwerdrucker verschwunden sind.

    Deswegen habe ich mir vor langer Zeit dieses Script geschrieben, dass alle in einer ini abgelegten Drucker neu installiert werden.

    Code
    Local $PRT = IniReadSection("H:\_Conrad lokal\Downloads\AutoIt3\_COX\inis\Drucker.ini", "PRT")
    If @error Then Exit
    For $i = 1 To $PRT[0][0]
        RunWait(@SystemDir & "\RUNDLL32 PRINTUI.DLL,PrintUIEntry /in /n  \\DRUCKERDOMAIN\GEMEINSAM-GETEILTES-DRUCKER-PRÄFIX" & $PRT[$i][1])
    Next
    Exit

    Vielleicht hilft Dir das. Gruß, Simpel

  • Windows 7 Lockscreen

    • Simpel
    • 29. August 2018 um 10:09

    Das 2. Display wäre ebenso gesperrt (aber schwarz). Dort wäre somit auch nichts zu sehen.

  • Windows 7 Lockscreen

    • Simpel
    • 29. August 2018 um 09:36

    Moin.

    Ich habe für meinen Rechner mal was ähnliches gewünscht und habe mir damals den Sperrbildschirm nachgebaut. Ich habe also so getan, als wäre der Schirm von Windows gesperrt aber dabei hatte ich ihn manuell „versperrt“ und konnte somit immer noch dazwischen funken. Allerdings wirst Du das nicht mit den Tasten Stgr+Alt+Del oder Win+L hinbekommen, denn diese sind für Windows reserviert. Da ich aber der einzige User an diesem Rechner war ging das problemlo.

    Weitere Möglichkeit, die mir einfällt: Du könntest einen zweiten kleinen Rechner mit Bildschirmchen daneben stellen. Du vernetzt die beiden. Der gesperrte kann weiter Infos in eine gemeinsam geteilte ini schreiben und der Inforechner wertet diese aus.

    Gruß, Simpel

  • Script mit Login versehen

    • Simpel
    • 27. Juli 2018 um 12:34

    Moin.

    Wenn es wirklich nur darum geht dass nur Du das Programm benutzen sollst, dann brauchst Du auch keinen Benutzernamen. Dann ist ein Passwort in ausreichender Stärke genug:

    Code
    If Not _ZugangsKontrolle() Then Exit
    ConsoleWrite("Hier geht das Programm weiter" & @CRLF)
    
    Func _ZugangsKontrolle()
        Local $sPW = InputBox(" ", " ", "", "*")
        If $sPW <> "DeinFancyPasswort" Or @error Then Return False
        Return True
    EndFunc

    Ich würde hier keinen Schnickschnack mit 3 Versuchen etc. machen, denn falls Du Dich vertippst, dann startest Du das Programm eben nochmal. "Title" und "Prompt" bei der InputBox lasse ich auch immer leer, damit es weiter keinen Hinweis gibt, was dort gebraucht wird.

    Gruß, Conrad

  • Kann man um einen String "replacen"?

    • Simpel
    • 20. Juli 2018 um 23:52

    Moin.

    Sorry. Ich dachte auch nicht an StringRegExpReplace sondern an:

    $aResult = StringRegExp($sString, PATTERN, 3) ; flag=3

    ConsoleWrite($aResult[0] & @CRLF)

    Also nichts ersetzen, sondern nur pur das Gesuchte rausholen.

    Gruß, Conrad

  • Kann man um einen String "replacen"?

    • Simpel
    • 20. Juli 2018 um 11:02

    Würde ich vielleicht so machen:

    ^(.*\\.*\\[\w\d\&]+)

    https://regex101.com/r/uetJOC/3

    Gruß, Conrad

  • Kann man um einen String "replacen"?

    • Simpel
    • 20. Juli 2018 um 09:22

    Moin.

    Das Beispiel von @Churanos ohne Gruppen sondern als ein Gesamtrückgabestring:

    ^(USB\\VID\_[\w\d]+\&PID\_[\w\d]+\\[\w\d\&]+)

    https://regex101.com/r/uetJOC/2

    Gruß, Conrad

  • GUI an Bildschirm Rand andocken

    • Simpel
    • 11. Juli 2018 um 20:32

    Hi.

    Ich benutze die UDF WinSnap.au3 dafür. Finden kann mann die hier: https://www.autoitscript.com/forum/topic/12…comment-1317890

    Ich habe dann noch die UDF ein bisschen modifiziert, was man hier genauer nachlesen kann: https://www.autoitscript.com/forum/topic/12…comment=1317890

    Gruß, Conrad

  • _IsPressed mit ß

    • Simpel
    • 20. Juni 2018 um 15:30

    Ja, das dachte ich mir auch schon. Ich versuche mal was und frage bei Details dann noch mal nach.

    Gruß, Conrad

  • _IsPressed mit ß

    • Simpel
    • 20. Juni 2018 um 10:57

    Mein Tool wird nur dann gestartet, wenn ich den Verdacht einer hängenden Taste habe, da sollte die Schleife nicht das Problem sein.

    Aber mich würde schon interessieren, wie Du das optimieren würdest. Hätte das was mit _WinAPI_SetWindowsHookEx() zu tun?

  • _IsPressed mit ß

    • Simpel
    • 19. Juni 2018 um 19:31

    Moin. Ich habe über viele Inputs mir mal was anderes gebastelt:

    Code
    OnAutoItExitRegister("_Exit")
    Global $__inkey_flag = False
    Global $__Tasta_code[256][2], $hDLL = DllOpen("user32.dll")
    Global $hGui = GUICreate("Taste klemmt", 400, 115)
    Global $label1 = GUICtrlCreateLabel("", 10, 10, 380, 30)
    Global $label2 = GUICtrlCreateLabel("", 10, 40, 380, 30)
    Global $label3 = GUICtrlCreateLabel("", 10, 70, 380, 30)
    GUICtrlCreateLabel("", 0, 100, 10, 15) ; Dummy um die ersten 10 Pixel mit HG-Farbe zu füllen
    GUICtrlSetBkColor(-1, 0xBBBBBB)
    Global $hStatus = GUICtrlCreateLabel("Gültig für Tastatur mit deutschem Layout. Beenden mit ESC.", 10, 100, 400, 15)
    GUICtrlSetBkColor(-1, 0xBBBBBB)
    GUISetState()
    Local $a
    While GUIGetMsg() <> -3
        $a = _inkey()                                 ;Tastenanzeige
        GUICtrlSetData($label1, "KEY:" & @TAB & $a)
        $a = _inkey(1)                                ;hexcodes
        GUICtrlSetData($label2, "HEX:" & @TAB & $a)
        $a = _inkey(2)                                ;deccodes
        GUICtrlSetData($label3, "DEC:" & @TAB & $a)
        Sleep(10)
    WEnd
    Exit
    
    Func _inkey($flag = 0)                            ;gibt die gleichzeitig gedrückten Tasten zurück, wenn flag=1 gibt dann tastaturcode zurück
        If $__inkey_flag = False Then                 ;nur in der ersten Runde das Tasten-Array füllen
            $__inkey_flag = True
            Local $a = [["01", "Left Mouse"], ["02", "Right Mouse"], ["04", "Middle Mouse"], ["08", "BACKSPACE"], ["09", "TAB"], ["0C", "CLEAR ?"], ["0D", "ENTER"], ["10", "SHIFT"], ["11", "CTRL"], ["12", "ALT"], ["13", "PAUSE"], _
                                ["14", "CAPS LOCK"], ["1B", "ESC"], ["20", "SPACEBAR"], ["21", "PAGE UP"], ["22", "PAGE DOWN"], ["23", "END"], ["24", "HOME"], ["25", "LEFT ARROW"], ["26", "UP ARROW"], ["27", "RIGHT ARROW"], ["28", "DOWN ARROW"], _
                                ["29", "SELECT ?"], ["2A", "PRINT ?"], ["2B", "EXECUTE ?"], ["2C", "PRINT SCREEN"], ["2D", "INS"], ["2E", "DEL"], ["30", "0"], ["31", "1"], ["32", "2"], ["33", "3"], ["34", "4"], ["35", "5"], ["36", "6"], ["37", "7"], _
                                ["38", "8"], ["39", "9"], ["41", "A"], ["42", "B"], ["43", "C"], ["44", "D"], ["45", "E"], ["46", "F"], ["47", "G"], ["48", "H"], ["49", "I"], ["4A", "J"], ["4B", "K"], ["4C", "L"], ["4D", "M"], ["4E", "N"], ["4F", "O"], _
                                ["50", "P"], ["51", "Q"], ["52", "R"], ["53", "S"], ["54", "T"], ["55", "U"], ["56", "V"], ["57", "W"], ["58", "X"], ["59", "Y"], ["5A", "Z"], ["5B", "Left WIN"], ["5C", "Right WIN"], ["5D", "Right MENU"], _
                                ["60", "NUM0"], ["61", "NUM1"], ["62", "NUM2"], ["63", "NUM3"], ["64", "NUM4"], ["65", "NUM5"], ["66", "NUM6"], ["67", "NUM7"], ["68", "NUM8"], ["69", "NUM9"], ["6A", "NUM*"], ["6B", "NUM+"], ["6C", "NUM."], _
                                ["6D", "NUM-"], ["6E", "NUM,"], ["6F", "NUM/"], ["70", "F1"], ["71", "F2"], ["72", "F3"], ["73", "F4"], ["74", "F5"], ["75", "F6"], ["76", "F7"], ["77", "F8"], ["78", "F9"], ["79", "F10"], ["7A", "F11"], ["7B", "F12"], _
                                ["7C", "F13"], ["7D", "F14"], ["7E", "F15"], ["7F", "F16"], ["90", "NUM"], ["91", "SCROLL"], ["A0", "Left SHIFT"], ["A1", "Right SHIFT"], ["A2", "Left CTRL"], ["A3", "Right CTRL"], ["A4", "Left MENU"], ["A5", "Right MENU"], _
                                ["BA", "Ü", ";"], ["BB", "+", "="], ["BC", ","], ["BD", "-"], ["BE", "."], ["BF", "#", "/"], ["C0", "Ö", "`"], ["DB", "ß", "["], ["DC", "^", "\"], ["DD", "´", "]"], ["DE", "Ä", "#"], ["E2", "<", "n.a."]]
            For $i = 0 To UBound($a) - 1
                $__Tasta_code[Dec($a[$i][0], 2)][1] = $a[$i][1] ; es werden nur bekannte Codes in das Array geschrieben, der Rest bleibt leer
            Next
        EndIf
        Local $string = ""                            ;gedrückte Tasten
        For $i = 1 To 254                             ;eigentlich nur bis 221
            Local $key = DllCall($hDLL, "short", "GetAsyncKeyState", "int", $i)
    ;~         Local $key = DllCall($hDLL, "short", "GetKeyState", "int", $i)
            If BitAND($key[0], 0x8000) Then           ;MSB gesetzt
                Switch $flag
                    Case 0
                        If $__Tasta_code[$i][1] = "" Then $__Tasta_code[$i][1] = "unknown code = 0x" & Hex($i, 2) & " ";falls Tastencode unbekannt
                        $string &= "[" & $__Tasta_code[$i][1] & "]" & @TAB
                    Case 1
                        $string &= "0x" & Hex($i, 2) & @TAB
                    Case 2
                        $string &= $i & @TAB
                EndSwitch
            EndIf
        Next
        Return $string
    EndFunc    ;==>_inkey
    
    Func _Exit()
        DllClose($hDLL)
    EndFunc
    Alles anzeigen

    Das funktioniert auch echt fluffig. Nun passiert aber was merkwürdiges. Ich drücke "ASDF" gleichzeitig und bekomme es auch angezeigt. Drücke ich nun "G" oder "H" dazu tauchen diese bei mir nicht auf. Drücke ich nur das "F" im Wechsel mit "G" und "H" kann ich nun die 2 Buchstaben gleichzeitig sehen, aber niemals "FGH" gleichzeitig. Hat da jemand irgendeine Idee?

    Gruß, Conrad

  • _IsPressed mit ß

    • Simpel
    • 18. Juni 2018 um 21:56

    Moin.

    Meine Erweiterung übersetzt nun auch den HEX-Code in das entsprechende Zeichen auf der Tastatur:

    AutoIt
    #Include <WindowsConstants.au3>
    #include <Misc.au3>
    
    ; Achtung deutsche und englische Tastatur haben einige Tasten anders - deswegen gibt es im Array gelegentlich auch ein Ergebnis unter [$i][2]
    Local $aTastaturZeichen = [["01", "Left Mouse"], ["02", "Right Mouse"], ["04", "Middle Mouse"], ["08", "BACKSPACE"], ["09", "TAB"], ["0C", "CLEAR ?"], ["0D", "ENTER"], ["10", "SHIFT"], ["11", "CTRL"], ["12", "ALT"], ["13", "PAUSE"], _
                                ["14", "CAPS LOCK"], ["1B", "ESC"], ["20", "SPACEBAR"], ["21", "PAGE UP"], ["22", "PAGE DOWN"], ["23", "END"], ["24", "HOME"], ["25", "LEFT ARROW"], ["26", "UP ARROW"], ["27", "RIGHT ARROW"], ["28", "DOWN ARROW"], _
                                ["29", "SELECT ?"], ["2A", "PRINT ?"], ["2B", "EXECUTE ?"], ["2C", "PRINT SCREEN"], ["2D", "INS"], ["2E", "DEL"], ["30", "0"], ["31", "1"], ["32", "2"], ["33", "3"], ["34", "4"], ["35", "5"], ["36", "6"], ["37", "7"], _
                                ["38", "8"], ["39", "9"], ["41", "A"], ["42", "B"], ["43", "C"], ["44", "D"], ["45", "E"], ["46", "F"], ["47", "G"], ["48", "H"], ["49", "I"], ["4A", "J"], ["4B", "K"], ["4C", "L"], ["4D", "M"], ["4E", "N"], ["4F", "O"], _
                                ["50", "P"], ["51", "Q"], ["52", "R"], ["53", "S"], ["54", "T"], ["55", "U"], ["56", "V"], ["57", "W"], ["58", "X"], ["59", "Y"], ["5A", "Z"], ["5B", "Left WIN"], ["5C", "Right WIN"], ["5D", "Right MENU"], _
                                ["60", "NUM 0"], ["61", "NUM 1"], ["62", "NUM 2"], ["63", "NUM 3"], ["64", "NUM 4"], ["65", "NUM 5"], ["66", "NUM 6"], ["67", "NUM 7"], ["68", "NUM 8"], ["69", "NUM 9"], ["6A", "NUM *"], ["6B", "NUM +"], ["6C", "NUM ."], _
                                ["6D", "NUM -"], ["6E", "NUM ,"], ["6F", "NUM /"], ["70", "F1"], ["71", "F2"], ["72", "F3"], ["73", "F4"], ["74", "F5"], ["75", "F6"], ["76", "F7"], ["77", "F8"], ["78", "F9"], ["79", "F10"], ["7A", "F11"], ["7B", "F12"], _
                                ["7C", "F13"], ["7D", "F14"], ["7E", "F15"], ["7F", "F16"], ["90", "NUM"], ["91", "SCROLL"], ["A0", "Left SHIFT"], ["A1", "Right SHIFT"], ["A2", "Left CTRL"], ["A3", "Right CTRL"], ["A4", "Left MENU"], ["A5", "Right MENU"], _
                                ["BA", "Ü", ";"], ["BB", "+", "="], ["BC", ","], ["BD", "-"], ["BE", "."], ["BF", "#", "/"], ["C0", "Ö", "`"], ["DB", "ß", "["], ["DC", "^", "\"], ["DD", "´", "]"], ["DE", "Ä", "#"], ["E2", "<", "n.a."]]
    
    Local $hDLL = DllOpen("user32.dll"), $hGUI = GUICreate('', 1, 1, -1, -1, $WS_POPUP), $x = 1, $y = 1 ;$x = @DesktopWidth / 2 - 50,  $y = @DesktopHeight / 2
    ToolTip('Die blockierte Taste wird als Tooltip angezeigt... Abbruch mit ESC!', $x, $y)
    Sleep(1000)
    Local $sZeichenDeutsch, $sZeichenEnglisch
    While True
        For $i = 1 To 0xFF
            If _IsPressed(Hex($i, 2), $hDLL) Then
                If $i = 0x1B Then ExitLoop 2 ; ESC
                For $j = 0 To UBound($aTastaturZeichen) - 1
                    If $aTastaturZeichen[$j][0] = Hex($i, 2) Then
                        $sZeichenDeutsch = $aTastaturZeichen[$j][1]
                        $sZeichenEnglisch = $aTastaturZeichen[$j][2]
                        ExitLoop
                    EndIf
                Next
                If $sZeichenEnglisch = "" Then ; deutsche und englische Belegung gleich
                    If $sZeichenDeutsch <> "" Then
                        ToolTip('Blockierte Taste: ' & $sZeichenDeutsch & @CRLF, $x, $y)
                    Else
                        ToolTip('Blockierte Taste HEX: ' & Hex($i, 2) & @CRLF, $x, $y) ; keine Übersetzung des HEX-Code im Array gefunden
                    EndIf
                Else ; deutsche und englische Belegung unterschiedlich
                    ToolTip('Blockierte deutsche Taste: ' & $sZeichenDeutsch & @CRLF & 'Blockierte englische Taste: ' & $sZeichenEnglisch & @CRLF, $x, $y)
                EndIf
                While _IsPressed(Hex($i, 2), $hDLL)
                    Sleep(250)
                WEnd
                ToolTip('Blockierte Taste: ', $x, $y)
                $sZeichenDeutsch = ""
                $sZeichenEnglisch = ""
            EndIf
        Next
        If Not WinActive($hGUI) Then WinActivate($hGUI)
        Sleep(10)
    WEnd
    
    ToolTip('')
    DllClose($hDLL)
    Alles anzeigen

    Immer wenn die deutsche und englische Belegung unterschiedlich sind werden beide angegeben.

    Jetzt fehlt mir nur noch die Auswertung der Modifier links oder rechts. Denn dabei wird immer der Standardcode für den Modifier zusammen mit dem Code des Modifiers spezialisiert auf seine Seite angegeben. Mit anderen Worten die linke SHIFT-Taste spukt immer die "10" und "A0" raus. Der Loop wird aber bereits bei einem Treffer von 10 beendet und deswegen gar nicht bis zu A0 durchgeschritten.

    Hat da jemand eine Idee dazu? Wenn ich einfach die ["10", "SHIFT"] rauswerfe dann wird meistens der HEX-Code angezeigt und nicht "Left SHIFT".

    Gruß, Conrad

  • R128 Lautheitsmesser

    • Simpel
    • 18. Februar 2018 um 23:57

    Moin Andy,

    Danke schon mal für die bisherigen Ausführungen. Ich bin in DLLStructs leider gar nicht zu Hause. Da muß ich wohl noch mal ordentlich büffeln, um das wirklich zu verstehen. Den riesigen Zeitgewinn zwischen beiden Methoden habe ich gesehen. Dabei hat sich gezeigt, daß ein weiterer großer Zeitfresser das 400ms-Array ist. Allein:

    AutoIt
    _ArrayDelete($a400msInteger, "0-" & ($i100msSampleCount - 1) & "")     ; aus dem 400ms-Array (also Momentary) die obersten 100ms entfernen
    _ArrayAdd($a400msInteger, $a100msInteger)      ; die aktuellen 100ms hinzufügen

    frisst pro 100ms-Runde ca. 100ms Zeit. Das ist natürlich Murks.

    Was ich aber auch sehe, wenn ich

    AutoIt
    _ArrayDisplay($a100msInteger, "IntegerKette")

    einschalte, daß mit reinem AutoIt das Array immer die exakten 4800 Werte hat, aber über die DLLStruct die Werte zwischen 4800 und 4812 schwanken. Weißt Du, warum das so ist?

    Was Du bisher immer berechnest, ist 1 Kanal Audio hintereinander geschrieben. Es können ja aber bis zu 6 Kanäle sein, die interleaved, im Wechsel codiert sind. In Post 5 habe ich dieses Verhalten bereits berücksichtigt. Wie bekommt man das jetzt mit Deiner Variante hin? Vergrößert sich die Struct mal der Kanäle und greift die K-Filter-Berechnung nur auf die Werte zurück, die nur zu diesem Kanal gehören?

    Ich denke mal, daß ich auch ein DLLStruct sowohl für die 400ms, als auch für die 3s schaffen muß und zwar für jeden Kanal extra. Da es Kanäle gibt, die mit Faktor 1,5 und einen Kanal mit Faktor 0 in die Gesamtberechnung eingehen.

    Gruß, Conrad

  • Neue Autoit-Version viele Bugfixes

    • Simpel
    • 13. Februar 2018 um 10:37

    Moin

    _DebugArrayDisplay ist das alte _ArrayDisplay. Das neue _ArrayDisplay hat keine Knöpfe mehr. Es ist einfach nur zum Anschauen der Arrays.

    Gruß, Conrad

  • R128 Lautheitsmesser

    • Simpel
    • 12. Februar 2018 um 22:42

    Also theoretisch könnten die Audiosamples signed Integer 32bit sein. Ich durchdenke aber auch gerade, ob man allen Audiosamples größer 16bit einfach die lower Bytes klaut und 16bit draus macht. Das könnte eine Ungenauigkeit in der Größe des letzten 16bit-Bits sein, vermute ich, aber es ist, glaube ich, genau genug. Die Lautheitswerte werden am Ende mit einer Dezimalstelle angegeben. Ich muss das mal konkret durchrechnen.

    Ob 8 Nachkommastellen für die Filterberechnung reicht, muß ich auch ausprobieren.

    Gruß, Conrad

  • R128 Lautheitsmesser

    • Simpel
    • 12. Februar 2018 um 17:11

    Ach ja, das könnte Sinn ergeben.

  • Forenupdate - September 2017 - Probleme / Anregungen / Feedback - Sammelthread

    • Simpel
    • 12. Februar 2018 um 17:10

    Alles klar. Ich werde ab jetzt die AU3 anhängen.

  • Forenupdate - September 2017 - Probleme / Anregungen / Feedback - Sammelthread

    • Simpel
    • 12. Februar 2018 um 14:11

    Moin.

    ich hatte gerade versucht Code von ~320 Zeilen zu posten. Dabei sind mir dann die 20.000 Zeichen zum "Verhängnis" geworden. Ich hatte auch viel kommentiert zum besseren Verständnis, daß mußte ich jetzt rausschmeißen, damit es passt. Aufgefallen ist mir dabei, daß Word die Zeichen wohl anders zählt, als das Forum. In Word war ich bereits unter 20.000 mußte für das Forum aber noch ordentlich kürzen.

    Für Projekte finde ich 350 Codezeilen eher wenig. Kann in diesem Unterforum die Zeichenanzahl erhöht werden?

    Mir ist jetzt einige Male passiert, daß beim Posten die Enter/Return-Taste keine Funktion mehr hatte. Ich habe dann den Post abgeschickt und danach bearbeitet. Da funktionierte dann die Entertaste wieder. Kann sich jemand vorstellen, woran das liegen kann?

    Gruß, Conrad

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™