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

Beiträge von MojoeB

  • [Erledigt] Freiwillige gesucht 👀 um ein AutoIt + SQLite Projekt zu testen

    • MojoeB
    • 27. Februar 2025 um 13:03

    also habe grad auf meinem Rechner nur 1 kompiliertes Skript *exe die läuft ohne Probleme und ich habe noch eine json Tester als *au3

    beide funktionieren. (da habe ich aber auch keine sqlite Datenbank mit drin.)


    (unter der vm gesteset)

  • [Erledigt] Freiwillige gesucht 👀 um ein AutoIt + SQLite Projekt zu testen

    • MojoeB
    • 27. Februar 2025 um 10:57

    hab die Anweisung noch nicht durchgeführt, hatte gestern Abend Probleme mit meinem Templates unter unraid, obwohl ich sie bearbeitet habe und damit eigentlich geändert aber er hat immer wieder das alte template genommen, deshalb hab ich erst heute morgen die Installation abschließen können, als ich das gelöst habe.

    Also frisch installiertes System - autoit v. 3.3.16.1
    win10 x86, 19045.2006, noch keine Anweisungen befolgt, das mache ich wenn ich von der Arbeit komme ^^.

    Hier ein *gif was für Fehler kommen wenn man einfach drauf los legt ohne etwas zu beachten.


    error_01 - Jumpshare

  • [Erledigt] Freiwillige gesucht 👀 um ein AutoIt + SQLite Projekt zu testen

    • MojoeB
    • 26. Februar 2025 um 17:07

    windows 11 x86 gibts glaub ich garnicht oder sehe ich das falsch ? o.o wollte mir grad eine iso suchen, bei ms gibts aber nur 64x.

  • [Erledigt] Freiwillige gesucht 👀 um ein AutoIt + SQLite Projekt zu testen

    • MojoeB
    • 26. Februar 2025 um 14:38

    ha wenn ich zeit finde mach ich ne vm auf mein unraid und teste es für x86^^.
    ich habe letztens mit ki & postgres Datenbank rumgespielt.

    Und überlege mir daraus eine Applikation zu machen die Idee:
    - Anbindung Webserver, der verschiende Datenbank Server Speichern kann.
    - Automatisierte Inhalte
    Der Agent übernimmt die Aufgabe, bei einer Anfrage alles Notwendige zu erstellen oder darzustellen, was der Nutzer benötigt. Dabei kann er auch eigenständig Vorschläge liefern, falls man sich unsicher ist und vorher nochmal nachfragen.
    Erweiterung auf alle Datenbanktypen
    Obwohl ich zunächst mit PostgreSQL experimentiert habe, soll der Agent langfristig auf alle gängigen Datenbanktypen adaptiert werden.
    Zentralisierte Verwaltung
    Man kann seine Datenbankserver in einer Applikation eintragen. Mit nur einem Klick wird der entsprechende Server aktiviert, und der Chat-basierte Assistent liefert maßgeschneiderte Lösungen auf an & nach frage.
    API-Key Integration
    Für eine sichere Nutzung wird der Zugriff per API-Key geregelt. So kann man den Assistenten direkt und sicher in der Applikation zur Nutzung eintragen.
    ich fand das war ein richtig geiles Gefühl das einfach alles so leicht erstellt werden kann man muss sich 0 auskennen mit sql.

    Was hälst du von der Idee?

  • MYSQL/MariaDb Datenbank

    • MojoeB
    • 20. Februar 2025 um 12:58

    an deiner stelle würde ich die mysql datenbank selbst hosten also im unternehmen, es muss nur ein Update vom Hoster geschehen und dein Programm funktioniert nicht mehr, da dieses verfahren mit *dll mit den neueren mysql Versionen nicht mehr funktioniert.
    Dort ist es so
    - MYSQL Treiber für die korrekte Version runterladen
    - Installieren
    - per Name die du dann im odbc32 / 64 finden kannst, den Treiber ansteuern.

    und hier muss man dann auch drauf achten bei 64 musst du auch autoit mit 64bit laufen laufen & compilieren lassen sonst bricht dein Programm zusammen.

  • Hilfe bei der Automatisierung: Wie greife ich auf Felder in einer Herstellersoftware zu?

    • MojoeB
    • 5. Dezember 2024 um 22:08

    erstmal ein großes Lob für die Mühe und den Aufwand, der hinter der Nutzung von uia_functions steckt! diese Methode ist definitiv eine durchdachte und leistungsstarke Möglichkeit, das Programm zu steuern.
    Die Struktur und Möglichkeiten, die damit geboten werden, sind beeindruckend.
    Es hört sich nach viel Arbeit an, er kann wenn er will ja auch beide Methoden vereinen.

    den ich habe zum Beispiel keine Ahnung wie ich die Subfenster größer/kleiner machen kann, oder bzw. verschieben.
    ich weiß nicht wie man das innerhalb des Programms zurechtschieben kann, falls ein Nutzer auf die idee kam die fenster mal zu verschieben.

    Da wäre uia bestimmt sehr nützlich wenn man es versteht ^^ ich habs bisher noch nicht verstanden.

    Die dinge die du innerhalb der Sub- Fenster erreichen willst sind immer fest
    - Eine Möglichkeit die ich mir gedacht habe man belässt die Fenster so wie sie beim ersten start waren, wenn dann ein Fenster befüllt werden soll wird es innerhalb des programmes maximiert und die statischen elemente im subfenster dann per mouseclick angeklickt und per controllbefehen ausgefüllt und bestätigt.

    Wie gesagt leider hänge ich an den Fenstergrößen/Anordnung innerhalb des Programms. Es gibt zwar diesen einen reiter im ribbon menu aber das ist ja nicht zu 100% immer identisch (kommt auf den nutzer drauf an, ich als nutzer musste natürlich an den fenster größen spielen ^^) ich schätze das müsste man auch mit uia lösen wenn man diesen menü punkt nutzen möchte.
    oder diese ribbon udf? keine Ahnung hab ich auch noch nie mit gearbeitet.

    Allerdings sobald sich ein Menüpunkt öffnet, lassen sich die darin enthaltenen Steuerelemente ganz einfach mit ControlClick, ControlSetText oder ähnlichen AutoIt-Befehlen bedienen. Das würde dir etwas Arbeit sparen deshalb der Vorschlag beide Vorschläge zu verwenden und nicht alles bis aufs kleinste zu objektisieren^^.
    Der Vorteil dabei ist, dass alle Fenster und Steuerelemente, die sich öffnen lassen, durch das AutoIt-Info-Tool leicht ausgelesen werden können. Dadurch ist die Steuerung nicht nur unkompliziert, sondern auch sehr direkt. Besonders praktisch ist, dass Eingabefelder, Buttons und andere Elemente so gezielt angesprochen werden können.

    Schnuffel – Danke nochmal für die Aufarbeitung, die in der anderen uia-Methoden steckt – sie ist sicherlich in vielen Szenarien unverzichtbar! Leider für Menschen die damit noch nicht gearbeitet haben schwer zu durchschauen.

    Aber hier habt ihr meine Variante bisher : (die Ordnerstrucktur : @ScriptDir & "\ROPEXvisual 2.0 540000311\RopexVisualLaunch.exe ) mit Debug Zeilen zum schritte kontrollieren. @edit: mache morgen weiter hab grad noch ne Möglichkeit gesehen evtl. geht es.


    Code
    Opt("MouseCoordMode", 2) ; Relative zum aktiven Fenster
    
    Global $Debug = True ; Debug-Modus: True = Langsamer mit Debug-Meldungen, False = Normal
    
    ; Funktion: Debug-Meldungen und Pausen
    Func DebugMsg($message)
        If $Debug Then
            MsgBox(64, "Debug", $message)
    		ConsoleWrite("Debug :"& $message &"sleep 0,5sec"&@CRLF)
            Sleep(500) ; 500ms Pause für visuelle Verfolgung
        EndIf
    EndFunc
    
    ; Funktion: Programm starten
    Func StartProgram()
        Local $programPath = @ScriptDir & "\ROPEXvisual 2.0 540000311\RopexVisualLaunch.exe"
        If Not FileExists($programPath) Then
            MsgBox(16, "Fehler", "Programm nicht gefunden: " & $programPath)
            Exit
        EndIf
    
        DebugMsg("Starte Programm: " & $programPath)
        Run($programPath)
        DebugMsg("Warte auf Fenster: ROPEXvisual® V3.11 - Controller.Parameter.Konfiguration")
    
        ; Warten, bis das Hauptfenster verfügbar ist
        WinWait("ROPEXvisual® V3.11", "", 15) ; Max. 15 Sekunden warten
        If Not WinExists("ROPEXvisual® V3.11") Then
            MsgBox(16, "Fehler", "Das Programm konnte nicht gestartet werden.")
            Exit
        EndIf
    
        ; Fenster aktivieren und maximieren
        DebugMsg("Fenster gefunden, aktiviere und maximiere")
        WinActivate("ROPEXvisual® V3.11 - Controller.Parameter.Konfiguration")
        WinSetState("ROPEXvisual® V3.11 - Controller.Parameter.Konfiguration", "", @SW_MAXIMIZE)
    EndFunc
    
    ; Funktion: Sprache ändern
    Func ChangeLanguage()
        DebugMsg("Klicke auf Settings mit MouseClick")
        MouseClick("left", 149, 53) ; Koordinaten für Settings
    
        DebugMsg("Klicke auf Language mit MouseClick")
        MouseClick("left", 361, 88) ; Koordinaten für Language
    
        DebugMsg("Warte auf Dialog: Language selection")
        WinWait("Language selection", "", 5)
        If Not WinExists("Language selection") Then
            MsgBox(16, "Fehler", "Der Dialog für die Sprachauswahl konnte nicht geöffnet werden.")
            Exit
        EndIf
    
        ; Sprache auswählen
        DebugMsg("Wähle Sprache: Deutsch")
        ControlCommand("Language selection", "", "ComboBox1", "SelectString", "Deutsch")
    
        ; Klicke auf OK
        DebugMsg("Klicke auf OK")
        ControlClick("Language selection", "", "Button1")
    
        ; Warten, bis das Hauptfenster wieder aktiv ist
        DebugMsg("Warte auf Rückkehr zum Hauptfenster")
        WinWaitActive("ROPEXvisual® V3.11 - Controller.Parameter.Konfiguration", "", 5)
    EndFunc
    
    ; Funktion: Freigabe aktivieren
    Func EnableAuthorization()
        DebugMsg("Klicke auf Menü 'Einstellungen'")
        MouseClick("left", 149, 53) ; Koordinaten für Einstellungen
    
        DebugMsg("Klicke auf Schaltfläche 'Freigabe'")
        MouseClick("left", 315, 93) ; Koordinaten für Freigabe
    
        DebugMsg("Warte auf Passwort-Dialog")
        WinWait("Zugangsberechtigung", "", 5)
        If Not WinExists("Zugangsberechtigung") Then
            MsgBox(16, "Fehler", "Der Dialog für die Zugangsberechtigung konnte nicht geöffnet werden.")
            Exit
        EndIf
    
        DebugMsg("Gebe Passwort ein: ropex3")
        ControlSetText("Zugangsberechtigung", "", "Edit1", "ropex3") ; Passwort eingeben
    
        DebugMsg("Klicke auf OK im Passwort-Dialog")
        ControlClick("Zugangsberechtigung", "", "Button1") ; OK klicken
    
        DebugMsg("Warte auf Rückkehr zum Hauptfenster")
        WinWaitActive("ROPEXvisual® V3.11 - Controller.Parameter.Konfiguration", "", 5)
        DebugMsg("Freigabe erfolgreich aktiviert.")
    EndFunc
    
    
    ; Hauptprogramm
    StartProgram()
    ChangeLanguage()
    EnableAuthorization()
    Alles anzeigen
  • Hilfe bei der Automatisierung: Wie greife ich auf Felder in einer Herstellersoftware zu?

    • MojoeB
    • 3. Dezember 2024 um 08:52

    Irgendwie stand nichts mehr da was ich grad geschrieben habe.


    Also die Coords stimmen im Info tool nicht mehr 100%tig glaube aber das liegt an der Windows GUI,

    aber hier hast du mal ein beispiel was peter meinte wenn ich richtig liege.

    AutoIt
    ; Skript starten
    ; Öffnet den Explorer mit dem Befehl für die bluetootheinstellungen
    Run("explorer.exe ms-settings:bluetooth") ; Führt den URI-Befehl über den Explorer aus
    WinWaitActive("[CLASS:ApplicationFrameWindow]", "", 10) ; Warten, bis das Fenster der bluetootheinstellungenaktiv ist
    
    ; Setzt die Maus-Koordinaten relativ zum Fenster
    Opt("MouseCoordMode", 2) ; 2 = Fenster-relative Koordinaten
    
    ; Fenster positionieren
    WinMove("[CLASS:ApplicationFrameWindow]", "", 100, 100) ; Verschiebt das Fenster oben links
    
    ; Mausbewegung und Klick auf eine Position innerhalb des Fensters
    MouseMove(155, 235, 5) ; Bewegt die Maus auf eine feste Position relativ zum Fenster
    MouseClick("left") ; Klickt auf die aktuelle Position
    Sleep(500)
    MouseClick('left',155, 235, 1,  5); Klickt auf die aktuelle Position
    Sleep(50)
    MouseClick('left',168, 292, 1,  5); Klickt auf die aktuelle Position
    Sleep(50)
    MouseClick('left',143, 336, 1,  5); Klickt auf die aktuelle Position
    Sleep(500)
    
    ; Fenster schließen
    WinClose("[CLASS:ApplicationFrameWindow]")
    WinWaitClose("[CLASS:ApplicationFrameWindow]", "", 5)
    Alles anzeigen
  • DLL-Return als Objekt - wie?

    • MojoeB
    • 12. November 2024 um 15:51

    Direct2D-UDF und DirectSound-UDF also ich habe beide Sachen mal runtergeladen und es ist sehr viel, aber Kommentare sind dort überall, bzw. header.

  • Smart TV Tips erbeten // erledigt

    • MojoeB
    • 30. Oktober 2024 um 23:19
    Zitat von Andy

    Wenn du jetzt ERNSTHAFT der Prozessorkrücke in einem Smart-TV sämtliche "smarten" Apps aufhalsen willst und davon ausgehst, dass das "problemlos" funktioniert, dann ist dir ehrlich gesagt nicht mehr zu helfen.... :Glaskugel: "akzeptiert und unterstützt" heißt in keinster Weise, dass diese App(s) auch ruckelfrei bzw. ohne Aussetzer alle x Minuten und auch insgesamt einwandfrei funktionieren :P

    ich habe damals extra darauf geachtet das es keine Prozessor Krücke ist, gebracht hats mir nichts.


    Zitat von Andy

    Hehe, wieso wohl?! ICH würde auch dem von mir gebauten Gerät verbieten Funktionen (aka Apps) zu benutzen , die es nicht verarbeiten kann 8)

    Es waren vielleicht insgesamt 25apps (edit: dabei waren sehr viele abo sachen) im store alles andere war nicht abrufbar, rooten konnte man es auch nicht, deshalb der Chromecast

    Zitat von Andy

    "primitiver" Amazon-Prime-Stick der 20€-Klasse (im Angebot :P ) schlägt von der Bedienerfreundlichkeit und Geschwindigkeit die meisten internen Apps der Smart-TV UM LÄNGEN!

    das ist ja grad die Schreinerei wenn man sich ein gerät für 2000euron kauft, das dann nicht mal alles bieten kann und fast egal bei welchem Hersteller.

  • Smart TV Tips erbeten // erledigt

    • MojoeB
    • 30. Oktober 2024 um 15:00

    BugFix ja klar dann nehm mal mit einer vhs hd filme auf^^.

  • Smart TV Tips erbeten // erledigt

    • MojoeB
    • 30. Oktober 2024 um 13:05

    genau das ist der punkt den ich gemeint habe bei den smarttvs heutzutage darfst du nichts mehr privat aufnehmen, du kannst es versuchen aber begibst dich automatisch in einen grau Bereich.

  • Smart TV Tips erbeten // erledigt

    • MojoeB
    • 30. Oktober 2024 um 11:42

    :/ das meiste was sich aufnehmen lässt ist keine Aufnahme -> es speichert sich auf dem Server deine 'Aufnahme' und wird nach irgendwann automatisch gelöscht.
    heut zu tage sind die Videorecorder alle online und beschränkt und meistens auch mit Werbung.
    man könnte noch andere dinge tun die sind dann aber rechtlich ein Problem.

  • Smart TV Tips erbeten // erledigt

    • MojoeB
    • 22. Oktober 2024 um 13:17

    Wenn du ein smartes Gerät kaufst, achte darauf, dass es wirklich smart ist – besonders im Hinblick auf die Möglichkeit, es durch Apps zu erweitern, die auch akzeptiert und unterstützt werden.
    Zum Beispiel habe ich einen Sony-Fernseher mit Android TV, aber der Play Store dort zeigt kaum Apps an. Vergleiche ich das mit meinem Chromecast, der dasselbe System verwendet, ist der Unterschied enorm – dort ist die Auswahl an Apps viel größer.

    in meinem beispiel damit ich mein amblight eigenbau am tv betreiben kann, muss ich extra den chromecast anschließen -.- weil mein sonygerät die apps nicht zulässt.

  • Excel Darstellung // gelöst

    • MojoeB
    • 18. Oktober 2024 um 07:48

    ich hab so gut wie keine ahnung von excel.

    hab deine frage mal chat gpt o1 gefragt.

    ChatGPT - Excel Diagramm erstellen
    Shared via ChatGPT
    chatgpt.com

    hat er es richtig gecheckt?

  • Unit Testing in Autoit

    • MojoeB
    • 17. Oktober 2024 um 11:47

    SOLVE-SMART

    nein durch dich habe ich bereits auf vscode umgestellt, während der Umstellung habe ich isn studio weiter genutzt und anfangs nur wenig mit vs code gearbeitet.
    durch die weitere Nutzung python habe ich mich dann an vs code angefreundet.
    git hatte ich kurz daheim drauf, aber ist schon wieder unten, einer der gründe war das ich das nicht auf der Arbeit nicht nutzen kann.

    die Autoit Erweiterungen funktionieren bei mir auch nicht zu 100% wieso kann ich dir nicht sagen.
    ich bin froh das ich Skripte über vs code mit f5 starten kann.

    Ansonsten wollte ich eh umstellen auf meinem Unraid Server habe ich ein Docker VS Code web Applikation gefunden darüber wollte ich zukünftig entwickeln.
    ich habe momentan Schwierigkeiten mit meiner Hardware deshalb stockt das etwas.

    Bloß für autoit wird das nichts bringen da es kein Windows ist. ^^

    irgendwann werde ich auch git wieder installieren und richtig nutzen aber momentan war es für mich nicht auf meiner prio liste.

  • Unit Testing in Autoit

    • MojoeB
    • 17. Oktober 2024 um 10:08

    ich bin grad an selbst an massig Units xD produzieren... -> und momentan ist alles ein Test :D ich nenne das einfach bisher immer Funktionen.

    -> möchte für autoit units erstellen die es erleichtern große guis zu erstellen ohne viel Code und tamtam und mit der option ob feste gui oder flexible gui.

    -> ich war gestern zu 50 % gefühlt fertig mit den Grundfunktionen dann wollte ich noch etwas anderes rein implementieren und seit dem hab ich massig Fehler produziert ~.~ und nun drück ich mich etwas davor xD aber ich werde es bald weitermachen....

    also für mich sind Funktionen essentiel.

  • Select Cas in einem Intervall

    • MojoeB
    • 19. September 2024 um 15:07
    Zitat von SOLVE-SMART

    Danke dir Mars , spannend 👌 .

    Bis es so weit ist das KI komplexe AutoIt Herausforderungen meistern wird, kann es noch etwas dauern. Dafür ist AutoIt zu nisch'ig 😅 - es gibt zu wenig Daten - und viele Quellen auf GitHub.


    Nunja :), ich habe als gpt-o eingeführt wurde mit einem eigen gpt-assistenen gestartet um es zu testen und ich muss sagen, der ging ab und hat mir auch viele generierte Tokens entgegen gespuckt, das output fenster war rießig ich habe bis zu dem Zeitpunkt kein anderes model mehr gesehen das mir so viel gibt und das sogar lauffähig ist.
    Leider hat das aber schon nach einigen Tagen sehr stark nachgelassen und es wurden plötzlich immer unvollständige Outputs generiert und wenn man gesagt hat mach weiter, hat er weiter gemacht aber mit falschen daten drinnen die man davor gar nicht angeben hat.

    danach konnte ich bisher nur wieder bei pre-o1 so guten output generieren lassen.

    - gefüttert wurde mein Assistent mit nur
    - selbstgeschrieben Funktionen und dazu beispiele dazu
    + regeln die ich mir selbst beim programmieren mit autoit stelle.
    + ein mini Skript das alles vereint und eine kleine Vorschau bietet.

    Also selbst das nicht nachdenkende Model kann mit den richtigen Anweisungen sehr viel mit autoit anfangen.
    Wenn nichts im Hintergrund geändert oder beschränkt wird.

  • aktuelles Chromedriver Problem 08.2024

    • MojoeB
    • 16. September 2024 um 10:32

    SOLVE-SMART  
    'ja bei Selenium, WebdriverIO oder anderen großen Communities geht das alles etwas einfacher und schneller in der Anpassung.'
    - ja da wirst du recht haben,

    erklärt aber immer noch nicht :D warum bei mir nur ein alter webdriver mit fix funktioniert und der neueste mit 'fix' und auch ohne nicht. (edgeversion)^^

    nunja werde alles versuchen auf python um zu bauen, scheint mir etwas komfortabler zu sein, obwohl ich mich an diesen autoit slang so sehr dran gewöhnt habe ^^

    edit : werde es vorerst nicht testen sry.

  • aktuelles Chromedriver Problem 08.2024

    • MojoeB
    • 15. September 2024 um 11:59
    Zitat von SOLVE-SMART

    Hi zusammen 👋 ,

    ich bin mal wieder online #autoit #yeah 😊 .
    Allerdings treibt mich derzeit, also schon seit etwas mehr als einem Jahr, nicht mehr viel zu dieser Sprache. Schade... aber naja, off-topic.

    Zum Thema:
    Wichtig zu verstehen ist, dass @mlipok "nur" in der wd_demo.au3 einen entsprechenden Weg gezeigt hat, wie damit umzugehen ist. D.h. in der folgenden Release Version wird sich da nichts ändern und ihr müsst wie von gmmg im Post#7 gezeigt, agieren. Welche Änderungen seit dem letzten Release v1.3.1 außerdem noch mit in der kommenden Version v1.3.2 sein werden, könnt ihr hier sehen.

    Ich aktualisiere gerade mein au3webdriver-boilerplate template, um die Änderungen und werde dort in wd_core.au3 oder wd_helper.au3 eigene Änderungen mit einpflegen, damit bzgl. Port nicht immer daran gedacht werden muss. Mal sehen wie ich das mache. Außerdem pflege ich dort auch gleich --disable-search-engine-choice-screen mit als Standard option bei Chrome hinzu.

    Wer Interesse hat mehr Infos von mir dazu zu bekommen, der meldet sich bitte einfach 🤝 .
    Ansonsten viel Spaß und Erfolg weiterhin mit dem WebDriver Projekt.

    Viele Grüße
    Sven

    Alles anzeigen


    (bei mir nicht Chrome sondern Edge)
    Also, bei mir hat es teilweise funktioniert mit dem Fix aus '#post7'. Als ich es am 30.08 das letzte Mal mit dem aktuellen Webdriver getestet habe (der automatisch heruntergeladen wurde), funktionierte es leider nicht. Erst als ich einen älteren Webdriver manuell gesetzt habe und den Fix aus Post7 verwendet habe, lief es.

    Momentan beschäftige ich mich viel mit Python, und dort habe ich keine Probleme dieser Art. Der Selenium-Treiber lädt ebenfalls den aktuellen Webdriver für Edge herunter und verwendet ihn ohne Anpassungen im Code.

  • aktuelles Chromedriver Problem 08.2024

    • MojoeB
    • 29. August 2024 um 00:03

    kann es sein das es ebenso Edge betroffen ist Session können nicht gestartet werden?
    habe die Lösung bei Edge ausprobiert hat nicht funktioniert.

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™