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

Beiträge von HansJ54

  • Quellcode und Links aus dem Chrome Browser auslesen

    • HansJ54
    • 24. Juni 2020 um 10:48

    Kein neues Thema ;)

    Firefox und Edge kannst Du genau so benutzen wie Chrome, Dan's Webdriver UDF ist für alle ausgelegt. Du musst Dir nur neben SetupChrome noch SetupEdge und SetupFirefox dazu nehmen. Die Driver findest Du über die Hinweisseiten und sie heißen geckodriver.exe für Firefox und msedgedriver.exe für Edge (den neuen Edge).

    Heißt: Driver downloaden, statt SetupChrome den anderen Setup aufrufen und der Rest vom Script bleibt in fast allen Fällen gleich.

    Ansonsten gegen das Poppen: Demo und Wiki anschauen, mal in WD_Core und WD_Helper und beim Webdriver stöbern: es gibt Parameter für minimized, hidden usw. Wenn Du eine vernünftige Lösung gefunden hast, hier veröffentlichen. Ich brauche aktuell nur das Gegenteil, also Fenster nach vorne holen. Aber vielleicht irgendwann auch mal das Gegenteil?

    Was programmierst Du überhaupt, würde vielleicht helfen, Ideen zu finden.

  • Quellcode und Links aus dem Chrome Browser auslesen

    • HansJ54
    • 23. Juni 2020 um 10:30

    Ist es aber nicht, das hatte ich doch schon einmal geschrieben. Die Webdriver (=Chromedriver)-Entwickler haben das Projekt vorgesehen zum automatisierten Testen von Webseiten und nicht für das, was wir damit machen. Du kannst sehr viel über die Parameter des Chromedrivers einstellen, aber auch die können von einem auf den anderen Tag geändert oder abgeschaltet werden.

    Ich habe übrigens den Balken "Chrome wird von automatisierter Testsoftware gesteuert"

    unkonventionell wegbekommen: Send("{Tab} ") und weg ist er. Beim Edge muss man allerdings 6 Tabs schicken.

  • Quellcode und Links aus dem Chrome Browser auslesen

    • HansJ54
    • 22. Juni 2020 um 21:23

    An der Stelle scheint sich Dan auch nicht so ganz sicher zu sein. Bei WD_Loadwait() wartet er auf "complete" vom Webdriver, beim Öffnen einer Seite wartet(e) er, bis ein neues Handle erscheint (finde das in der aktuellen Release allerdings nicht mehr auf Anhieb). Das "complete" scheint nicht immer "complete" zu sein.

    Die Browser sehen anders aus aufgrund der Parameter, die Du mit Desiredcapabilities übergibst. Dazu müsstest Du mal tiefer beim Chromedriver einsteigen.

  • Quellcode und Links aus dem Chrome Browser auslesen

    • HansJ54
    • 22. Juni 2020 um 00:27

    wd_loadwait scheint tatsächlich manchmal nicht auszureichen. Da gebe ich dann noch ein Sleep(3000) dazu. Ausprobieren!

  • Quellcode und Links aus dem Chrome Browser auslesen

    • HansJ54
    • 19. Juni 2020 um 20:14

    Wie wäre es mit Angabe einer URL in NewTab?

    _WD_NewTab($sSession, True, -1, $sURL)

    Und bei Switch musst Du Dir vorher ein Hendl kaufen:S

    $sHandle = _WD_Window($sSessions, "window")

    Damit kannst Du das Fenster dann wieder reaktivieren.

  • Quellcode und Links aus dem Chrome Browser auslesen

    • HansJ54
    • 18. Juni 2020 um 09:28

    Oder so z.B.:

    Code
    Local Const $sChromeProfil = 'C:/Webdriver/CHROME_WD_Profile'
    Local Const $sWebDriverFileChrome = 'C:/Webdriver/chromedriver.exe'

    Du musst darauf achten, dass im Gegensatz zu den Windowskonventionen hier in den Pfaden der "\" durch einen "/" ersetzt wird.

  • Quellcode und Links aus dem Chrome Browser auslesen

    • HansJ54
    • 17. Juni 2020 um 21:41

    "_FuncName($sFuncName, @ScriptLineNumber)" ist eine eigene Debug-Funktion, habe ich vergessen zu löschen - einfach weg damit.

    $sChromeProfil und $sWebDriverFileChrome musst Du selbst setzen:

    z.B.

    $sChromeProfil = "C:/Webdriver/CHROME_WD_Profile"

    $sWebDriverFileChrome = @ScriptDir & "chromedriver.exe"

    Zeile 3+4 gehören nicht in ChromeSetup, das solltest Du an den Anfang Deines Programms setzen.

  • Link in Mails per AutoIt verarbeiten

    • HansJ54
    • 17. Juni 2020 um 13:15

    Das Problem liegt woanders:

    ich habe im Prinzip die Passwortverwaltung der Browser optimiert nachgebildet und ein paar "kleine" Sicherheitsaspekte hinzugefügt. Google, Microsoft und KeyPass haben dadurch keinen Zugriff auf unsere gespeicherten Passwörter;) und außerdem liegen bei unseren Mitarbeitern keine Listen mit fast 100 Zugangsdaten auf dem Schreibtisch.:)

    Funktioniert inzwischen bestens. (Anmerkung für die Vorsichtigen, da ich deswegen an anderer Stelle schon mal angegangen wurde: ich knacke keine Passwörter, sondern automatisiere die Anmeldungen mit hier hinterlegten Passwörtern - so wie die Browser oder KeyPass, nur aus meiner Sicht ein wenig komfortabler und sicherer).

    Wenn jetzt in einer Mail ein Link geschickt wird, der über eine Anmeldeseite läuft, fehlt mir die Kontrolle und der Mitarbeiter kommt nicht weiter (da niemand hier irgendwelche Anmeldedaten kennt). Es geht also nicht um die Mail an sich oder bestimmte Mails, sondern nur um spezielle Links in manchen Mails. Es wird sicher eine Stelle geben, vermutlich in der Registry, wo für Outlook hinterlegt wird, was beim Klick auf einen Link ausgeführt wird - habe ich nur noch nicht gefunden.

  • Abfrage Rechner im Firmennetz eingeschaltet / Ping?

    • HansJ54
    • 17. Juni 2020 um 12:39
    Zitat von chip

    Zusätzlich habe ich noch ein Fallback Script laufen welche alle Rechner welche mit dem Status an in der DB stehen periodisch anpingt. Dies hat den Grund, damit Rechner welche warum auch immer nicht normal heruntergefahren werden auch als offline erkannt werden.

    Da hast Du Recht, aber unter Berücksichtigung der "Abstürze" kann man dann doch wieder ausschließlich mit Ping arbeiten!? Letzte Woche hat meine USV (!) plötzlich ohne Stromausfall meinem Rechner den Strom abgedreht, da hätte kein Abmeldescript geholfen.

  • Quellcode und Links aus dem Chrome Browser auslesen

    • HansJ54
    • 17. Juni 2020 um 12:19
    Zitat von Faultier_1982

    Obwohl ich in den Chrome Einstellungen fest eingestellt habe, dass Benachrichtigungen Blockieren soll speichert er diese Einstellung nicht wenn ich mein Autoit-Programm neu starte und Chrome wieder geöffnet wird... dann kommt wieder die Meldung "Benachrichtigungen anzeigen Zulassen Blockieren" kann man das dauerhaft abstellen?

    Wenn immer ein neues temporäres Profil genutzt wird, dann kann sich Chrome natürlich nichts merken. Das lässt sich dadurch verhindern, dass der Browser immer das gleiche vorgegebene Profil nimmt. Das erreicht man durch "$sChromeProfil" (Pfad zur Ablage des Profils z.B. c:\webdriver). Macht zwar auch wieder neue Baustellen auf, wenn Browserfenster offen bleiben und Du Dein Programm neu startest, aber hilft ansonsten. Falls das vorkommt, einfach alle Fenster schließen bevor Du neu startest oder mehrere solcher Profile vorsehen.

    AutoIt
    Local Const $sChromeProfil = 'C:/Webdriver/CHROME_WD_Profile'
    Local Const $sWebDriverFileChrome = 'C:/Webdriver/chromedriver.exe'
    
    ...
    
    Func _SetupChrome()
        Local $sFuncName = "SetupChrome"
        _FuncName($sFuncName, @ScriptLineNumber)
        _WD_Option('Driver', $sWebDriverFileChrome)
        _WD_Option('Port', 9715)
        _WD_Option('DriverParams', '--log-path="' & $sLogsPath & 'chrome.log"' & ' --port=9715')
        $sDesiredCapabilities = '{"capabilities": {"alwaysMatch": {"goog:chromeOptions": {"w3c": true, "args":["user-data-dir=' & $sChromeProfil & '"]}}}}'
    EndFunc
    Alles anzeigen
    Zitat von Faultier_1982

    Ansonsten scheint es mir bis jetzt doch recht einfach zu sein... ;):)

    Bis jetzt ja, aber es bleiben, wenn Du tiefer einsteigst, immer noch Probleme. Wie bekommt man z.B. das "Chrome wird von automatisierter Testsoftware gesteuert" weg? Niemand hat einen Tipp bisher. Wobei das doch eigentlich mit "normalen Bordmitteln" von AutoIt möglich sein müsste ohne die Webdriver-UDF. Ist ja "nur ein Klick" auf das X ;(

    Zitat von Faultier_1982

    Ach und fast vergessen.... wie kann man eine Seite in einem Neuen Tab öffnen? Also keinen neuen Browser sondern nur einen neuen Tab....

    Dazu gibt es den Befehl WD_NewTab, findest Du in WD_Helper.

    Spoiler anzeigen

    ; #FUNCTION# ====================================================================================================================

    ; Name ..........: _WD_NewTab

    ; Description ...: Helper function to create new tab using Javascript

    ; Syntax ........: _WD_NewTab($sSession[, $lSwitch = Default[, $iTimeout = Default[, $sURL = Default[, $sFeatures = Default]]]])

    ; Parameters ....: $sSession - Session ID from _WDCreateSession

    ; $lSwitch - [optional] Switch session context to new tab? Default is True.

    ; $iTimeout - [optional] Period of time to wait before exiting function

    ; $sURL - [optional] URL to be loaded in new tab

    ; $sFeatures - [optional] Comma-separated list of requested features of the new tab

    Zitat von chip

    Evtl solltest du dir einmal deine Themen der letzten vier Jahre anschauen. Da hast mehrmals exakt das gleiche Thema gefragt. Sprich wie den Quellcode einer Webseite auslesen kannst.

    Vielleicht ist es gar nicht schlecht, das Thema Webdriver UDF mal von "Fast-Anfänger" zu "Anfänger" zu vermitteln. Die WD_Demo von Dan ist zwar super, aber nichts für jemanden, der sich völlig neu in das Gebiet einarbeitet, sondern setzt schon einiges an Wissen und Intuition voraus - war zumindest bei mir so. Und es hat viel Zeit und Fragen gekostet, um auch nur die wichtigsten Hintergründe zu verstehen und damit umzugehen.

    Bilder

    • pasted-from-clipboard.png
      • 8,58 kB
      • 479 × 118
  • Link in Mails per AutoIt verarbeiten

    • HansJ54
    • 16. Juni 2020 um 13:46

    Neues Problem:

    kann man den Klick auf Links in Mails in Outlook abfangen und anhand der URL entscheiden, ob AutoIt eigene Funktionen ausführt oder alternativ den Standardbrowser aufruft?

    Beispiel:

    Link in Mail = https://www1.wdr.de/wetter/wettervorhersage => Standardbrowser öffnet https://wdr.de

    Link in Mail = https://allianz.de/newsletter => AutoIt startet mein Programm (da "allianz.de" enthalten)

  • Quellcode und Links aus dem Chrome Browser auslesen

    • HansJ54
    • 15. Juni 2020 um 23:44

    Dachte ich mir ;)

    Rechte Maustaste auf das Feld, "Untersuchen" oder "Inspizieren", rechts erscheint ein markierter Text, rechte Maustaste auf den Text, Kopieren, "XPath kopieren" oder "Ganzen XPath kopieren". Der erste reicht meistens.

    pasted-from-clipboard.png

    Manchmal, je nach Seite, muss man rechts oben links noch mal auf das Kästchen mit dem Pfeil klicken und dann mit der Maus dahin zeigen, wo man den XPath sucht.

  • Quellcode und Links aus dem Chrome Browser auslesen

    • HansJ54
    • 15. Juni 2020 um 00:59

    Kleine Demo, ohne Fehlermeldungen usw. Die Suche nach dem Treffer-Link funktioniert bei diesem Beispiel zufällig, bei anderen nicht. Aber die Source solltest Du sowieso selbst analysieren und weiter verarbeiten, die Demo ist nur der Weg dorthin ;)

    AutoIt: WD_GoogleDemo.au3
    #include "wd_core.au3"
    #include "wd_helper.au3"
    #include <MsgBoxConstants.au3>
    
    #cs
    Kurze Webdriver UDF - Demo
    Google starten
    Suchbegriff eintragen
    Submit
    ::::
    quick and dirty, ohne Fehleranzeige usw.
    #ce
    
    ; Webdriver Debug-Fenster
    $_WD_DEBUG = False
    
    Local $sDesiredCapabilities, $sSession, $sSource, $sLink1
    Local $iIndex1, $iIndex2
    
    ; Url
    Local $sUrl = 'https:\\www.google.de'
    ; XPath zum Suchfeld
    Local $sXPathGoogleSuche = '//*[@id="tsf"]/div[2]/div[1]/div[1]/div/div[2]/input'
    ; XPath zum Submit-Button
    Local $sXPathSubmit = '//*[@id="tsf"]/div[2]/div[1]/div[2]/div[2]/div[2]/center/input[1]'
    
    ; Suchbegriff
    Local $sSuche = 'Kreuzstich-Kreativität'
    
    ; Initialisierung ChromeDriver
    _SetupChrome()
    
    ; Launch the designated web driver console app
    _WD_Startup()
    
    ; Request new session from web driver
    $sSession = _WD_CreateSession($sDesiredCapabilities)
    
    ; Navigate to the designated URL
    _WD_Navigate($sSession,$sUrl)
    
    ; Wait for a browser page load to complete before returning
    _WD_Loadwait($sSession)
    
    ; setze Fokus in das Suchfeld
    $sElement = _WD_FindElement($sSession, $_WD_LOCATOR_ByXPath, $sXPathGoogleSuche)
    
    ; trage Suchbegriff ein
    _WD_ElementAction($sSession, $sElement, 'value', $sSuche)
    
    ; Sendebutton
    $sElement = _WD_FindElement($sSession, $_WD_LOCATOR_ByXPath, $sXPathSubmit)
    
    ; Sendebutton klicken
    _WD_ElementAction($sSession, $sElement, 'click')
    
    ; lese die Source der Seite in die Variable $sSource
    $sSource = _WD_GetSource($sSession)
    
    ; hier musst Du dann die Source weiter untersuchen
    MsgBox($MB_ICONINFORMATION, "Source", $sSource)
    
    ; Suche den ersten Ergebnislink in der Source - kann man mit einer Schleife erweitern
    ; funktioniert für genau diesen einen Suchbegriff aber nicht für jeden, dazu $sSource analysieren
    $iIndex1 = StringInStr($sSource, '<link href=') + 12
    $iIndex2 = StringInStr($sSource, '"', 0, 1, $iIndex1)
    $sLink1 = StringMid($sSource, $iIndex1, $iIndex2 - $iIndex1)
    MsgBox($MB_OKCANCEL, "Suchergebnis (1):", $sLink1)
    
    ; Navigate to the designated URL
    _WD_Navigate($sSession,$sLink1)
    
    ; Wait for a browser page load to complete before returning
    _WD_Loadwait($sSession)
    
    MsgBox($MB_OKCANCEL, "Demo", "Zu Ende!")
    
    ; Session schließen
    _WD_DeleteSession($sSession)
    
    ; ChromeDriver beenden
    _WD_Shutdown()
    
    Func _SetupChrome()
        _WD_Option('Driver', 'ChromeDriver.exe')
        _WD_Option('Port', 9715)
        _WD_Option('DriverParams', ' --port=9715')
        $sDesiredCapabilities = '{"capabilities": {"alwaysMatch": {"goog:chromeOptions": {"w3c": true }}}}'
    EndFunc
    Alles anzeigen
  • Quellcode und Links aus dem Chrome Browser auslesen

    • HansJ54
    • 14. Juni 2020 um 22:02

    Wenn's läuft kein Problem, ansonsten nimm die V83 von der Downloadseite bis sich der Chrome auf V84 updatet.

    Zitat von Faultier_1982

    Und wie würde ein Beispiel z.B. für die Googel Startseite aussenen "https://www.google.de" um in das Schreibfeld zu schreiben, die Adresse des Link zu kopieren der unter den Buttons ist und dann auf den Button "Google-Suche" zu klicken? :)

    Schreibe Dir ein kurzes Muster, aber gerade läuft der Tatort ;)

    Wird morgen werden, sind nur ein paar Zeilen. Bei der Suche kommen aber viele Links und nicht nur einer? Du bekommst den Sourcecode der Seite in einer Textvariablen und suchst selbst?

  • Abfrage Rechner im Firmennetz eingeschaltet / Ping?

    • HansJ54
    • 14. Juni 2020 um 21:57

    Das mit dem Agent mache ich mit meinem aktuellen Programm sowieso schon (siehe Bild oben). Allerdings zeigt mir das nur an, ob jemand das Programm nutzt oder nicht. Hintergrund: wenn ich ein Update einspielen will, stören die User ;)

    Könnte ich für das An/Aus natürlich ins Login- und Logout-Script packen. Gute Idee, belastet den Server überhaupt nicht und die Clients ebenfalls nicht.

  • Quellcode und Links aus dem Chrome Browser auslesen

    • HansJ54
    • 14. Juni 2020 um 20:12

    Isso :S

  • Quellcode und Links aus dem Chrome Browser auslesen

    • HansJ54
    • 14. Juni 2020 um 19:46

    Aber nur, wenn man auch den neuesten Chrome bekommt, oder?

  • Quellcode und Links aus dem Chrome Browser auslesen

    • HansJ54
    • 14. Juni 2020 um 18:19
    Zitat von Faultier_1982

    8| Das würde bedeuten, dass Chrome ein Update raus bringt und alles funktioniert nicht mehr? 8|

    und man hat wieder stundenlange Arbeit, bis alles wieder lauft, muss seinen eigenen Code zusätzlich noch umschreiben... und wieder ewig die aktuellen Dateien im Internet suchen?? Das hört sich ja nicht sehr motivierend an....

    Hört sich schlimmer an als es ist. Die Entwickler vom Webdriver (also die vom Chromedriver, Geckodriver,.. - nicht die von der Webdriver-UDF) scheinen mir ein etwas eigenwilliges Volk zu sein, die aus meiner (unmaßgeblichen) Sicht unmotiviert immer mal wieder Veränderungen einführen ohne Abwärtskompatibilität. Allerdings scheint sich Microsoft zusammen mit Edge Chromium da einzuklinken, vielleicht wird es dann etwas stringenter.

    Zitat von Faultier_1982

    Das bedeutet sicherlich, dass ich diese Dateien auf allen Rechnern, auf denen ich meinen Code laufen lassen will, aktuell halten muss oder werden diese Dateien nicht mehr benötigt, wenn ich eine .exe erstellt habe?

    Nein, Du musst maximal den Chromedriver aktualisieren, wenn sich die ersten beiden Stellen der Versionsnummer von Chrome ändern (aktuell 83) und Du Chrome updatest. Bei den restlichen Dateien gibt es nur Verbesserungen und Korrekturen - wenn Dein Programm einmal läuft, egal ob kompiliert als .exe oder in SciTE , dann sollte es laufen - damit hatte ich bisher keine Probleme. Ich habe den Chromedriver auf einem Netzwerklaufwerk, ist dann nur eine einzige Kopie.

    Zitat von Faultier_1982

    Schlussendlich möchte ich mich auf einer Seite Quell-Code und Links auslesen, Buttons klicken und durch die Seiten navigieren.... Ich dache ich mache das mit Chrome, weil ich da jetzt viel mit Sendkey ausprobiert habe und das mit Chrome am besten funktioniert hat... Sendkey ist natürlich trotzdem fehleranfällig und das vor allem beim Klicken von Buttons...

    SendKey ist in dem Zusammenhang übrigens immer nur eine Notlösung, wd_core bietet wesentlich bessere Funktionen dazu. Wenn der Anwender gerade mal kurz mit der Maus irgendwohin klickt, dann geht Dein SendKey irgendwohin, aber nicht dahin, wohin es soll. Mit wd_core kannst Du über den XPath genau bestimmen was wohin geschrieben oder wo geklickt wird (selbst wenn der Anwender zwischendurch auf eine andere Seite geht oder die Seite minimiert). Vor drei Monaten wusste ich auch noch nicht, was genau ein XPath ist und speziell, wie man ihn findet. Falls Dir das nichts sagt - ist nicht so schwer, wenn man es erklärt bekommt ;)

    Zitat von Faultier_1982

    Meine Dateien-Sammlung sieht jetzt so aus, es macht Fortschritte aber ich glaube es fehlt mir noch was.... ich weiß auch nicht, ob ich bei allem die richtige Version habe...

    Sieht doch gut aus. Wenn Du den Chromedriver passend zu Deiner Chrome-Version geladen hast, läuft es. Die anderen Dateien, speziell wd_core, werden nur erweitert, da kannst Du auch mit einem älteren Stand normal arbeiten. Hast Du jetzt mal wd_demo versucht zu starten? :?:

  • Quellcode und Links aus dem Chrome Browser auslesen

    • HansJ54
    • 14. Juni 2020 um 00:38

    Die Zusammenhänge willst (und brauchst) Du nicht verstehen, zumindest nicht am Anfang ... :ironie:

    Zuerst solltest Du mal die Anzeige der Dateiendungen einschalten, damit man sieht, was Du hast und was fehlt.

    Die Links sind teilweise etwas kompliziert zu orten, aber von Dan's Startseite ausgehend ist alles zu finden. Jason ist hier versteckt https://www.autoitscript.com/forum/topic/14…t-json-udf-jsmn

    pasted-from-clipboard.png

    Beim Webdriver musst Du die passende Version zur Version Deines Browsers laden, da gibt es bei Chrome und Edge eine ganze Menge. Firefox ist da anspruchsloser.

    Wenn dann Dein Verzeichnis so aussieht wie bei mir und natürlich AutoIt und SciTEE installiert sind, dann starte wd_demo.

    Hier gibt es weitere Infos: https://www.autoitscript.com/wiki/WebDriver#FAQ

    Ansonsten einfach mal durch die beiden Supportseiten Dan blättern, damit bin ich auch so langsam nach und nach ins Thema gekommen.

    https://www.autoitscript.com/forum/topic/19…support/page/1/

    https://www.autoitscript.com/forum/topic/20…elp-support-ii/

    Das Projekt ist (noch) nicht so gut dokumentiert wie AutoIt und andere Projekte, aber ich habe große Hochachtung vor Dan, der das alles zusammengetragen hat und auch aktualisiert.

    Wenn Du mir genauere Infos gibst, was Du machen willst, kann ich Dir vielleicht ein paar Zeilen zusammenstellen.

  • Abfrage Rechner im Firmennetz eingeschaltet / Ping?

    • HansJ54
    • 13. Juni 2020 um 14:16

    Ich will ein altes Batchprogramm "modernisieren" und auf AutoIt umstellen mit einem kurzen Script, das mir den Zustand der Clients (an/aus) im Firmennetzwerk mit einer Ampel anzeigt.

    So in der Art:


    In der Batch habe ich das mit Ping gemacht. War ein wenig tricky, da Ping mit der aktuellen Microsoft-Umgebung und in Verbindung mit IPV6 nicht mehr so ganz eindeutig funktioniert. Habe lange testen und suchen müssen - ohne das Find "TTL" funktioniert es nicht:

    Code
    :ping
    ping %ip% -n 1 -w 1000 -l 2000 -4 | find /i "TTL" 
    if errorlevel 1 (set rc=PcOff) else (set rc=PcOn)
    goto :eof

    Das Ganze könnte ich jetzt so ohne Probleme in AutoIt umsetzen, aber gibt es vielleicht einfachere/bessere Methoden, um einen IP-Bereich auf an/aus zu überprüfen? Vielleicht könnte ich auch noch auf die Idee kommen, anzuzeigen, wer gerade wo angemeldet ist (dazu habe ich noch keine Idee)?

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™