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. SOLVE-SMART

Beiträge von SOLVE-SMART

  • Code Kata - Christmas Tree

    • SOLVE-SMART
    • 16. Dezember 2024 um 21:06

    Hi fee 👋 ,

    witzig das die kleine Coding Kata morgen (17.12.) genau ein Jahr alt ist ... die Zeit vergeht 😅 .
    Danke auch dir für deinen Beitrag. Du hast gut zusammengefasst was gültig ist und was nicht - also laut Aufgabenstellung.
    Passt so wie beschrieben 🤝 und deine letzten beiden Code-Beispiele erfüllen die Kriterien #yeah .

    Btw.: Deine ersten 4 Code-Beispiele, welche kurz und nicht 100%tig der Aufgabenstellung entsprechen, sind außerdem noch unflexibel was die Anpassung auf 15 Zeilen angeht. Doch abgesehen davon: super kurz ==> hätte ich niemals so erstellen können (auch nicht wollen 😂), aber Hut ab!

    Viele Grüße
    Sven

  • String länger als 4095 Zeichen

    • SOLVE-SMART
    • 16. Dezember 2024 um 20:48

    Hi Marcel 👋 ,

    nur zur Vollständigkeit: Ich habe mir den ersten Beitrag von dir nochmal durchgelesen und denke du wolltest eigentlich nur wissen, wie du einen überlangen Text bzw. String (länger als 4096 Zeichen), in AutoIt verwenden kannst - richtig? In meinem Beispiel wird einfach ein Multiline String genutzt, mehr ist es gar nicht. Der Rest davor ist die Umwandlung von Binary in Base64.

    Das Ganze hat wenig mit deinem POST Request zu tun, da du ja auch einfach ohne das Bild in base64 zu wandeln direkt beim POST Request mitgeben kannst (außer in deinem Fall gibt es da Einschränkungen?). Dann müsstest du einfach nur den Header Content-Type: multipart/form-data angeben und es sollte funktionieren.

    Naja, so oder so, es klappt ja irgendwie - daher "nur zur Vollständigkeit".

    Viele Grüße
    Sven

  • Ordner mit laufender Nummer

    • SOLVE-SMART
    • 9. Dezember 2024 um 08:14

    Hi @cybexz , willkommen im Forum 👋 .

    @Musashi hat ganz recht mit der Idee eine INI zu nutzen. Ist eine von mehreren Möglichkeiten, doch in AutoIt sehr einfach und effektiv.
    Als kleine Hilfestellung könnte dieser INI Beitrag dienen. Vielleicht hilft es dir ja.

    Viele Grüße
    Sven

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

    • SOLVE-SMART
    • 6. Dezember 2024 um 16:45

    Nun fehlt mir doch schon wieder das "Daumen hoch" Emoji. Stimme dir absolut zu Schnuffel , gut zusammengefasst.

    Diverse wrapper functions zu schreiben, wenn es nur einen Anwendungsfall gibt, wäre mir auch zu anstrengend. Vielleicht reicht ihm am Ende ja doch ein "relativ" robustes Maus-Klicken und fertig 🤔 .

    So wie du es formuliert hast juckt es mich schon eine Umsetzung zu schreiben, doch realistisch habe ich keine Zeit dazu, daher lass ich es lieber bevor andere (wirkliche) Projekte hinten runter fallen.

    -----------------

    Ich drücke dir die Daumen Muecke_1982 🤞 .

    Viele Grüße
    Sven

  • Wiederholung eines Scripts

    • SOLVE-SMART
    • 6. Dezember 2024 um 16:04

    Nein Moombas , Kanashius hat sich nur von einer anderen Richtung der Aussage bzw. Fragestellung von Florian.Butzhammer genähert.
    Ist schon richtig hier (außer ich irre mich).

    Ich sehe nur das Problem, dass wenn einfache Skripte Florian bereits vor Herausforderungen stellen, der Umgang mit SQLite wahrscheinlich noch schwieriger sein wird. Die Idee es so zu machen wie Kanashius beschreibt ist besser und flexibler, doch setzt auch einges mehr voraus 💡 .

    Daher let's see was Florian meint.

    Viele Grüße
    Sven

  • Wiederholung eines Scripts

    • SOLVE-SMART
    • 6. Dezember 2024 um 14:06

    Hi Florian.Butzhammer , willkommen im Forum 👋 .

    Du hast in deiner While-Schleife keine Abbruchbedingung definiert, sodass diese immer True ist und niemals die zweite Runde deiner For-Schleife begonnen wird, da der Programmablauf in der While hängen bleibt.

    Ich hoffe das reicht dir als erster kleiner Anstoß 😀 .

    Viele Grüße
    Sven

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

    • SOLVE-SMART
    • 5. Dezember 2024 um 11:39

    Hi Muecke_1982 👋 ,

    kannst du bitte mal deine Schritte welche du automatisieren möchtest auflisten bzw. zeigen? Dann können wir entweder mit mouse actions konkret helfen bzw. zeigen wie es geht oder noch besser, direkt mit UIA arbeiten und genau deinen Ablauf mal ausprobieren/implementieren.

    Ich meine nicht, dass wir dir das komplett abnehmen werden (außer es fühlt sich jemand dazu berufen - dann gern auch so 😇), doch zumindest hättest du dann ein konkretes Beispiel wie es geht.

    Also was mir persönlich helfen würde sind Bilder mit einer Klickreihenfolge. Dann ist klarer was wann wie gemacht werden soll. Ein Video wäre natürlich noch toller, doch so wie es deine Zeit hergibt ... Bilder. Bin recht zuversichtlich, dass du dann Code bekommst, welcher dir ganz konkret helfen wird 👌 .

    Viele Grüße
    Sven

  • String länger als 4095 Zeichen

    • SOLVE-SMART
    • 4. Dezember 2024 um 14:43

    Falls ich dich richtig verstehe, dann willst du einfach den langen String in ein MultilineString umwandeln, damit du ihn dann dem POST request übergeben kannst?
    Eigentlich hat das eine nix mit dem anderen zu tun (dies zeugt davon das ich nicht komplett verstehe was du brauchst und willst), doch hier mal ein Beispiel anhand du uns sagen kannst ob es das ist.

    Alles Funktionen die ich rumliegen hatte, nix neues und daher ggf. auch nicht ganz so up-to-date, sollte aber funktionieren.

    AutoIt
    #AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7
    #AutoIt3Wrapper_AU3Check_Stop_OnWarning=y
    
    #include-once
    #include <Array.au3>
    
    _Main()
    
    Func _Main()
        Local Const $iLineCharacters = 150
        Local Const $vImage = _BinaryToBase64('C:\Store\Media\Images\icon-appium.png')
        Local Const $aImage = _SplitStringByCountToArray($vImage, $iLineCharacters)
    
        _ArrayDisplay($aImage)
    
        ClipPut(_GenerateMultilineString($aImage))
    EndFunc
    
    Func _BinaryToBase64($sFilePath)
        Local Const $iBinaryMode = 16
    
        Local $hFile        = FileOpen($sFilePath, $iBinaryMode)
        Local $vFileContent = FileRead($hFile)
        FileClose($hFile)
    
        Local $oXml           = ObjCreate('MSXML2.DOMDocument')
        Local $oNode          = $oXml.createElement('b64')
        $oNode.dataType       = 'bin.base64'
        $oNode.nodeTypedValue = $vFileContent
    
        Return StringReplace($oNode.Text, @LF, '')
    EndFunc
    
    Func _SplitStringByCountToArray($sString, $iCount = 80)
        Local $iParts = Ceiling(StringLen($sString) / $iCount)
        Local $aContent[$iParts + 1], $x = 1
    
        For $i = 1 To $iParts Step 1
            $aContent[$i] = StringMid($sString, $x, $iCount)
            $x += $iCount
        Next
    
        $aContent[0] = $iParts
    
        Return $aContent
    EndFunc
    
    Func _GenerateMultilineString($aArray)
        Local $sResult
    
        For $i = 1 To $aArray[0]
            $sResult &= StringFormat("'%s' & _\n", $aArray[$i])
        Next
    
        Local Const $iEndCharactersToRemove = 6
    
        Return StringTrimRight(StringFormat('$sMultilineString = _\n%s', $sResult), $iEndCharactersToRemove)
    EndFunc
    Alles anzeigen

    Bin gespannt was du sagst 😁 . Erst siehst du den Base64 Code als Array, dann wird er dir gesplittet in die Zwischenablage kopiert. Dort kannst du ihr dir anschauen und sagen ob es das ist was du wolltest.

    Viele Grüße
    Sven

  • String länger als 4095 Zeichen

    • SOLVE-SMART
    • 4. Dezember 2024 um 14:16
    Zitat von gmmg

    Jetzt nachdem ich noch das StringReplace für @LF eingefügt habe läuft das Script zuverlässig.

    Heißt das gmmg dein Problem ist gelöst oder meinst du damit Text ==> Base64 läuft zuverlässig?

    Ansonsten frage ich mich, wie du den AutoIt POST request abfeuerst? WinHttp.au3 (_WinHttpSimpleRequest())?
    💡 Muss es wirklich AutoIt sein? Powershell per AutoIt ist auch schnell aufgerufen und fertig.

    Viele Grüße
    Sven

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

    • SOLVE-SMART
    • 4. Dezember 2024 um 08:35

    Hi Schnuffel 👋 ,

    sehr guter Beitrag meiner Ansicht nach. Ich stimme dir bei allem zu 👌 , bis auf eine Kleinigkeit:

    Zitat von Schnuffel

    [...] da wir weder die Anwendung noch die darin enthaltenen Objekte und deren Namen kennen.

    Schau' dir gern mal den Spoiler-Text von Muecke_1982 aus dem post#13 an (und ja, sehr versteckt und untergegangen die Info dazu).
    Wir könnten es theoretisch nachstellen, doch wo bleibt dann der Lerneffekt 🤝 .

    Der Einstieg in UIA ist sicherlich einfacher, wenn man Erfahrung mit .NET (C# etc.) hat, doch die Beispiele von LarsJ sind gut und man kann sich durcharbeiten, ganz richtig. Vielleicht ist das für irgendjemand hier ein guter Auftakt um ein Tutorial zu erstellen (in welcher Form auch immer). Mich lockt es, doch Zeit habe ich dafür keine.

    Naja, freut mich von dir gelesen zu haben Schnuffel, gern auch wieder öfter 😁 .

    Viele Grüße
    Sven

  • Webbrowser steuern für Downloads

    • SOLVE-SMART
    • 27. November 2024 um 20:37
    Zitat von Nox

    Spontan eine kurze Frage an Sven, wie kann ich eine vorhandene Chrome Instanz steuern?

    Kurze Antwort: FAQ Frage 1 sollte dir helfen.

    Zitat von Nox

    Und wie kann ich einen Button über die Beschriftung ausführen?

    Ich denke du meinst, wenn du bspw. einen Button hast, der "Absenden" heißt, wie du mit diesem interagieren kannst?
    Dafür gibt es Selectors bzw. eine Locator Strategy (FAQ Frage 11).

    Meine Empfehlung ist XPath, es geht aber auch ein CSS Selector (die weit verbreitet in der Nutzung sind).

    Theorie XPath:
    Mal angenommen es ist ein Button in einem Formular (so wie ein Kontaktformular oder so). Dann kannst du bestenfalls nach dem HTML attribute "id" suchen (denn dies ist einmalig) und zusätzlich gern auch nach dem Button-Label (Beschriftung).

    Beispiel XPath:

    1. Navigiere in Chrome nach https://www.w3schools.com/html/html_forms.asp
    2. F12 > Reiter "Elements" > STRG + F (Suche)
    3. //form/input[@value="Submit"] eintagen und dann bekommst du genau nur diesen einen Button als Treffer

    Im WebDriver musst du dann genauso den jeweiligen Selector für das jeweilige Element auf deiner Webseite bestimmen, damit du damit interagieren kannst (Klicks, in Inputs schreiben usw.).

    Ein XPath how-to Video steht bei mir seit längerem bereits auf der Agenda. Kann jedoch nicht sagen wann ich dieses produzieren werde.

    Zitat von Nox

    Den Rest muss ich mir mal in Ruhe anschauen...

    Mit Sicherheit musst du dir dafür Zeit nehmen. Doch es lohnt sich. Es gibt so viele Anwendungsfälle für den WebDriver, da sooo viel in Browsern stattfindet, dass sich der Aufwand lohnt meiner Erfahrung nach.

    Falls du technisch tiefer einsteigen wölltest, damit du noch robuster den Browser steuern kannst, dann schau dir CDP (Chrome DevTools Protocol) an. Aber Vorsicht: Super mächtig, doch auf jeden Fall eher advanced - also Geduld und Ausdauer mitbringen 😅 .

    Viele Grüße
    Sven

  • Webbrowser steuern für Downloads

    • SOLVE-SMART
    • 27. November 2024 um 11:37

    Hi Nox 👋 ,

    ein wenig Werbung für meinen eigenen Beitrag, der dir helfen sollte, schneller mit WebDriver Fuß zu fassen 😀 .
    ==> AutoIt WebDriver Crashkurs

    Viele Grüße
    Sven

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

    • SOLVE-SMART
    • 26. November 2024 um 13:28

    Falls dir Muecke_1982 trotz den guten Ideen, Hinweisen und Beispielen der Umgang mit UIA schwer fällt und du nicht vorwärts kommst, kannst du auch einen Ansatz über relative Koordinaten ausprobieren. Wichtig ist, dass du hierbei das Ausgangsfenster immer gleich groß darstellen lässt und die Position des Fensters bestenfalls auf 0, 0 setzt. Beides ist mit WinMove() erreichbar. Dies erhöht die Robustheit deines programmitischen Ablaufs enorm.

    Schau dir gern auch die Opt-Einstellungen ein. ==> "GUICoordMode" und "MouseCoordMode".
    Ist nicht die schönste Variante und auch nicht sehr flexibel, doch falls alle Stricke reißen, geht es damit mit Sicherheit.

    Viele Grüße
    Sven

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

    • SOLVE-SMART
    • 25. November 2024 um 20:16

    Hi Muecke_1982 👋 ,

    solche RibbonBars können meist auch per Tastenkombination gesteuert werden. Also zumindest ist dies bei den Office-Produkten so (gewesen). Bekommst du vielleicht Buchstaben angezeigt, wenn du die Anwendung im Fokus hast und per ALT Taste in der RibbonBar navigieren möchtest? Falls ja, könntest du dir ggf. UIA sparen und "einfach" darüber gehen. Ansonsten ist das schon einer der besten Ansätze (UIA), wenn auch nicht gerade der Einstiegsfreundlichste 🤔 .

    Ich drücke dir die Daumen.

    Viele Grüße
    Sven

  • AutoIt 3.3.16.1 deutsch / englische Hilfe verfügbar - Stand 2024.02.18

    • SOLVE-SMART
    • 21. November 2024 um 16:16

    Hi PSblnkd ,

    schaue dir doch gern mal die FAQs bzw. den ersten Punkt "How can I debug my script?" an. Dort findest du von allgemeinen Möglichkeiten zu debuggen, auch Beispiele zu IDEs welche das Debugging per Breakpoints möglich machen. Natürlich könnte man in SciTE dies in die Oberfläche einbauen, doch der darunter liegende Debugger muss eingebunden (oder erst mal implementiert) werden, dass ist erstmal nicht die Funktionalität der IDE (als von SciTE) selbst. So wie BugFix dies auch beschrieb.

    Wenn du sofort debuggen möchtest, dann ist meine Empfehlung VSCode mit ein paar wenigen Extensions. Zudem ist genius257 (engli. Forum) dran, die TypeScript Übersetzung für den Debugger  (dies braucht VSCode), auszubauen. Im Moment noch im Aufbau, doch einiges geht bereits.

    Was du am Ende nutzt ist dir überlassen. Ich möchte nur damit sagen, dass es bereits diverse Möglichkeiten gibt (siehe FAQs und die eben genannte Empfehlung). Daher glaube ich einfach nicht daran, dass bei SciTE sich was in dieser Richtung bewegen wird. Wenn dem so wär, gut für dich 😀 .

    ==> Wie durch water bereits angemerkt, schreib' einfach Jos an. Wenn er gute Laune hat, schreibt er auch zurück 😅 .

    Viele Grüße
    Sven

  • AutoIt 3.3.16.1 deutsch / englische Hilfe verfügbar - Stand 2024.02.18

    • SOLVE-SMART
    • 18. November 2024 um 20:49

    Danke BugFix für die Klärung. Falls also das schrittweise Debugging gemeint ist, wie du beschreibst, ja dann hat das nix mit SciTE zu tun.

    Naja, ... viele Grüße
    Sven

  • AutoIt 3.3.16.1 deutsch / englische Hilfe verfügbar - Stand 2024.02.18

    • SOLVE-SMART
    • 18. November 2024 um 13:36
    Zitat von PSblnkd

    Das hat nichts mit dem MS-Support zu tun - während beim AutoIt-Programm die Betriebssysteme angegeben werden - auch WinXP, unter denen das Programm läuft, ist das bei SciTE leider nicht der Fall (oder ich hab's noch nicht gefunden).

    Wenn eine Programm-Update erfolgt und neue BS-Funktionen benutzt werden, ist das dann klar, daß dieses dann nicht mehr unter den alten BS laufen wird. Darauf sollte aber hingewiesen werden.

    "Darauf sollte aber hingewiesen werden." ==> Dazu ist kein Softwarehersteller verpflichtet, wenn es sich um abgekündigte/nicht mehr supportete OS handelt.

    Zitat von PSblnkd

    Ich hatte ja immer noch gehofft, daß mal eine STEP-Funktion eingebaut wird - so, wie das bei VB(A) üblich ist. Würde den Code-Prozess ungemein erleichtern ...

    1. Was verstehst du unter "STEP-Funktion"?
    2. Dazu musst du dich so oder so ans englische Forum wenden, wenn du neue Funktionalität als sinnvoll erachtest.
      Ich kann allerdings auch gleich dazu sagen, dass die letzten "Proposals" nie von Jon (Admin & Creator von AutoIt) akzeptiert wurden bzw. bereits bei den Staff- und DEV-Leuten vorher bereits für "unnötig" eingestuft wurden. Dies bedeutet nicht das dein Ansatz ggf. nicht sinnvoll ist oder anderen helfen könnte - es heißt nur das du mit Gegenwind rechnen kannst.

    Viele grüße nach Berlin,
    Sven

  • AutoIt 3.3.16.1 deutsch / englische Hilfe verfügbar - Stand 2024.02.18

    • SOLVE-SMART
    • 14. November 2024 um 07:55

    Danke dir Tweaky für die Aufklärung. In etwa so hatte ich es im Hinterkopf.
    Und gleichzeitig macht sich in mir ein schlechtes Gewissen breit, wahrscheinlich zurecht 😅, da ich noch nichts zur Hilfe beigetragen habe.

    Durchhalten Tweaky , wie bisher auch.

    Viele Grüße
    Sven

  • AutoIt 3.3.16.1 deutsch / englische Hilfe verfügbar - Stand 2024.02.18

    • SOLVE-SMART
    • 12. November 2024 um 11:58
    Zitat von PSblnkd

    und SciTE läuft nicht unter WinXP!

    Darum wird sich sicherlich niemand mehr kümmern. Der Support durch Microsoft für Windows XP ist seit Jahren eingestellt, warum sollte das AutoIt Team dann SciTE noch für WinXP pflegen?

    Zitat von PSblnkd

    Bei meinem kürzlich erfolgten Download der Version 3.3.16 vom Link im deutschen AutoIt-Forum kam nur die englische Hilfe mit

    Ich bin mir nicht sicher, ob wir dies hier schon mal diskutiert hatten im Forum. Ist denn überhaupt die aktuelle Version bereits fertig übersetzt? Ich denke nicht ... daher ggf. auch der "alte" englisch Stand.

    Viele Grüße
    Sven

  • Automatischer Login via Edge nicht möglich

    • SOLVE-SMART
    • 12. November 2024 um 08:34
    Zitat von Chris_

    Der Browser soll, nachdem die Anmeldung funktioniert hat, offen bleiben, mit dem Ziel, ganz normal im Browser zu arbeiten.

    Okay, dann ist die vorgeschlagene Lösung mehr ein work-around als eine Lösung. Die Browser Automation, was die Handhabe mit WebDriver ist, sieht nicht vor das der Browser-Driver dauerhaft offen bleibt. Die Idee ist Tasks auszuführen und die Session dann wieder zu beenden.

    Für deinen Fall ist die Variante gedacht, dass man sich in ein vorhandenes Profil einklingt. Also eine Verbindung zu einer Browser-Session aufbaut, wie im WebDriver Wiki beschrieben (Link im post weiter oben). Dennoch: Am Ende alles nicht schlimm. Du kannst das so lassen, solltest nur ab und an mal deinen %TEMP% Ordner prüfen ob dieser auch wieder aufgeräumt wird oder sich unnötig viel Datenreste dort durch die Chromium (MSEdge) Sessions aufbauen und nicht mehr abräumen.

    Zitat von Chris_

    Ich bilde mir ein, vor einiger Zeit hat das auch mit dem DeleteSession geklappt, aber gut möglich dass ich mich da auch täusche.

    Eigentlich nein. Vielleicht hattest du auch noch 'ne ziemliche alte Version, doch auch dies ist ja nun egal.

    ----------------------

    Freue mich das ich behilflich sein konnte. Alles Gute weiterhin mit au3WebDriver Projekt 😀.

    Viele Grüße
    Sven

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™