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

  • PCIe 5 SSD

    • SOLVE-SMART
    • 31. Oktober 2025 um 21:07
    Zitat von argumentum

    Dieses Forum braucht einen „Gefällt mir“-Button.

    Like I said thousand times before 👍 .

    ---------

    Tatsächlich sehr interessant die Empfehlung Oscar , Danke 👌 .

    Viele Grüße, Sven

  • Hallo!

    • SOLVE-SMART
    • 30. Oktober 2025 um 11:18

    Ja dann herzlich willkommen 👋 Seppuku .

    Viel Spaß und Erfolg in unseren Reihen hier.
    Scheu' dich nicht reichlich Fragen hier los zu werden oder bei Threads beizutragen.

    Viele Grüße
    Sven

  • Funktion mit unbestimmter Anzahl von Parametern

    • SOLVE-SMART
    • 23. Oktober 2025 um 14:39

    War auch mein erster Gedanke Velted .
    Bzw. würde ich eine Map nutzen.

    Meine Frage wäre DOheim , warum du überhaupt so eine Funktion hast oder brauchst, mit beliebig vielen Parametern?
    Vielleicht kannst du das ganz vermeiden dann musst du auch nicht mit Eval etc. arbeiten.

    Wenn du mit den angebotenen Lösungen zufrieden bist, ist das auch für mich in Ordnung, doch persönlich würde ich dem "warum" auf den Grund gehen und es gar nicht erst dazu kommen lassen.

    My 13 Cents dazu 😀 .

    Viele Grüße
    Sven

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

    Zitat von BugFix

    Manche Funktionen gestaltet man ja auch mit einem Leerstring als Vorbelegung für eine Variable, aber es folgen trotzdem noch besetzte Parameter. Deshalb verwende ich für echte leere Variablen die Vorbelegung: NULL.

    Finde ich super BugFix , mit NULL zu arbeiten. So initialisiere ich Maps i. d. R. in AutoIt auch, um genau den Leerstring Fall berücksichtigen zu können 🤝 .

  • JSON UDF - beim erweitern eines JSON werden Escapezeichen geschrieben

    • SOLVE-SMART
    • 10. Oktober 2025 um 00:09

    Danke dir AspirinJunkie , wie immer hervorragend erklärt 👌 .

    Hier mal ein anderer Ansatz, im Falle du kannst/möchtest direkt mit der API response arbeiten.
    Vielleicht trifft mein skizziertes Beispiel gar nicht zu, doch evtl. hilft es im Verständnis mit dem Umgang mit JSON (strings).

    Mal angenommen du holst dir per cURL (oder anderen Client) dein JSON string (response) von irgendeiner Webseite.
    Dann könntest du mit jq (jq.exe) deine Zielstruktur direkt erstellen ohne viel machen zu müssen.
    curl -sSL 'https://your-target-website.com/api/get' | jq.exe '{images: .}'

    Ergebnis
    JSON
    {
      "images": [
        {
          "ref": "https://blabla",
          "hash": "3882db"
        },
        {
          "ref": "https://blabla",
          "hash": "3882db"
        },
        {
          "ref": "https://blabla",
          "hash": "3882db"
        }
      ]
    }
    Alles anzeigen

    Oder anders, damit es anschaulicher wird: Du hast deinen JSON string in Datei before.json (dies ist der Ersatz für dein cURL Aufruf) [...]
    [{"ref":"https://blabla","hash":"3882db"},{"ref":"https://blabla","hash":"3882db"},{"ref":"https://blabla","hash":"3882db"}]

    [...] nun kannst du, vorausgesetzt du nutzt unter Windows bash oder einen anderen Linux like Terminal (#werbung-für-vscode),
    per cat und jq das gleiche Ergebnis erreichen, in Datei after.json.
    cat before.json | jq '{images: .}' > after.json

    • cat before.json ==> anzeigen des Dateiinhaltes
    • | ==> pipe das Ergebnis der Datei in das nächste Tool/Programm, also jq
    • jq <command> ==> erzeugt deine Zielstruktur
    • > after.json ==> leitet das Ergebnis in die Datei after.json um

    💡 Ich weiß, viele Voraussetzungen und externe Tools, anstatt direkt mit der JSON.au3 und AutoIt zu arbeiten. Doch je nachdem in welchem Kontext du arbeitest oder mit jemanden arbeitest (Team etc.), ist AutoIt wahrscheinlich weniger im Einsatz als jq.

    ⚠️ Ich gebe auch hier nochmal den Hinweis, auch wenn ich weiß das AspirinJunkie meinen Beitrag hier richtig einordnen wird und kein JSON.au3 bashing wahrnimmt 😅 😙 :
    Wenn ich rein in AutoIt unterwegs bin und mit JSON arbeite, dann ist seine UDF aus meiner Sicht die richtige Wahl, unter den vielen JSON UDFs. Sobald ich mit anderen Sprachen, Frameworks etc. arbeite, sind deren JSON Serializer oder eben jq als Alternative, die bessere Wahl - da mehr geläufig. Dies deckt sich im wesentlichen auch mit dem was er bereits angesprochen hat, JSON einlesen, verarbeiten in der Sprache oder Tool der Wahl und JSON weiter verarbeiten oder ausgeben.

    Einen angenehmen Abend euch noch.

    Viele Grüße
    Sven

  • Datumsformat

    • SOLVE-SMART
    • 24. September 2025 um 18:16
    Zitat von Peter S. Taler

    So gehts auch:

    AutoIt
    Local $sZeit = "12:00 AM"
    
    If StringRight($sZeit, 2) = 'PM' Then
        Local $_i = StringLeft($sZeit, 2)
        $_i = Number($_i) + 12
        $_i = String($_i)
        $sZeit = $_i & StringMid($sZeit, 3, 3)
    Else
        $sZeit = StringLeft($sZeit, 5)
    EndIf
    
    MsgBox(0, "Ergebnis", $sZeit)
    Alles anzeigen

    Das reicht so leider nicht.

    Bei diesem Ansatz ergibt die Zeit 12:00 AM ==> 12:00, richtig ist aber 00:00.
    Das Gleiche gilt für 12:00 PM ==> 24:00 bei dir, jedoch ist 12:00 korrekt.
    Des Weiteren wäre bspw. die invalide Zeit 25:30 auch einfach 25:30 anstatt ein Fehler.

    Schau' gern nochmal drüber, Danke.
    Ich verweise auf die Funktion _Time12hTo24h in Post #3.

    Viele Grüße
    Sven

  • EXIF-Rename

    • SOLVE-SMART
    • 12. September 2025 um 17:39

    Nachtrag: Habe eben deinen rechtlichen Vermerk gesehen. Ist eine Art benutzerdefinierte Lizenz, okay. Doch damit fällt meine Modifikation "offiziell" weg. Bleibt es dabei Oscar ?

    Viele Grüße
    Sven

  • EXIF-Rename

    • SOLVE-SMART
    • 12. September 2025 um 17:24

    Hi und Danke Oscar für dein EXIF_Rename Tool 👌 .
    Bisher habe ich immer per ExifTool solche Dinge erledigt, doch dein Ansatz gefällt mir recht gut und ich schaue mal wie ich ihn für mich entsprechend anpassen werde.

    Doch dazu würde ich gern wissen ob du das Tool unter irgendeiner Lizenz zu Verfügung stellst?

    • BSD, MIT, The Unlicense oder wie es AspirinJunkie gelegentlich macht, mit der allseits beliebten WTFPL license ?
    • Denn falls nicht, darf niemand (No license) dein Tool verwenden/modifizieren etc.

    --------

    Ansonsten ein paar kleine Korinthenkacker Anmerkungen meinerseits 😂:

    • Zeile 163: $tRect ==> already declared/assigned
    • Zeile 425: $sOldDir ==> wird nicht benutzt (kann also in Zeile 423 zusammen mit "$sNum" gelöscht werden)

    Nochmals Danke 🤝 .

    Viele Grüße
    Sven

  • Fronius Webseite auslesen

    • SOLVE-SMART
    • 8. September 2025 um 20:03

    Hmm, na schön Tweaky , dann ist es so. Ich glaube zwar das du dir es schlimmer vorstellst als es ist, da ja nach dem Login wahrscheinlich "nur noch" das Daten abfischen kommt und fertig, doch ohne adaquaten Zugang (oder Simulation etc.) ist es schwierig, stimmt.

    Wie auch immer, komme jederzeit gern auf mich zu, wenn du einen erneuten Anlauf mit OIDC oder WebDriver starten möchtest 🤝 .

    Viele Grüße
    Sven

  • JSON-UDF

    • SOLVE-SMART
    • 8. September 2025 um 13:57

    Es ist wie immer ein Vergügen mit dir, Dankeschön für die gute Erläuterung 🤝 .

    Zitat von AspirinJunkie

    Daher wird es dort auch keine Funktion geben die aus einem 2D-Array eben keine verschachtelte Liste, wie man es aus dem Aufbau der Datenstruktur ableiten würde, sondern eine Liste von Objekten - denn das gibt die Syntax schlicht nicht her und eine andere Interpretation auf die Daten zu finden ist Sache des Users selbst.

    Zitat von AspirinJunkie

    Kurz: Ja klar kann man Daten hin und her transformieren wie man möchte - die JSON-UDF ist dafür halt nur der falsche Ort.

    Verstanden und nachvollziehbar!

    Zitat von AspirinJunkie

    Bei der Liste hingegen habe ich kein Pendant.
    Die Interpretation, dass der erste Eintrag eines 1D-Array der einzige Key einer Map sein soll und alle anderen Elemente als 1D-Array als Value dieses Keys behandelt werden sollen ist schlicht halt sehr individuell und bedarf daher auch einer individuellen Behandlung.

    Auch hierbei gebe ich dir Recht, dies muss der User der UDF selbst berücksichtigen bzw. seine Daten entsprechend vorher aufbereiten 👌 .

    ==> https://github.com/Sylvan86/autoi…r/TableData.au3 schaue ich mir (nochmal) genauer an. Hatte ich vor Monaten bin ich der Meinung, doch vor zwei Wochen ist mir deine UDF nicht eingefallen. Naja, mit fast 40 Jahren - cheers Andi - vergisst man die ersten Sachen eben 😂 .

    Alles klar, merci. Einen angenehmen Tag noch 🤝 .

    Viele Grüße
    Sven

  • JSON-UDF

    • SOLVE-SMART
    • 8. September 2025 um 13:08

    Hi AspirinJunkie , hi liebe Mitlesende 👋 .

    Ich könnte die Frage auch via GitHub issues stellen, doch zum einen passiert hier ja sonst nicht viel 😅 und zum anderen interessiert es vielleicht noch jemand hier, der nicht auf GitHub aktiv ist (who knows).

    Einleitung:

    Ab und an mache ich doch mal noch etwas mit AutoIt, neben anderen Sprachen in denen ich beruflich unterwegs bin.
    Dann kam deine Meldung zur Performance-Verbesserung deiner JSON.au3 UDF und prompt hatte ich mal wieder ein wenig Lust aktiv zu werden 😀 .

    Fragestellung:

    Warum existiert eigentlich kein "Array to JSON" in der UDF? Vielleicht tut es das (indirekt) und ich habe 🍅 auf den Augen, doch ich fand es vor zwei Wochen nicht.
    Also _JSON_Generate verhält sich sicher wie gewünscht, doch entspricht dies nicht dem output JSON string den ich "brauche" #spielerei.

    Code (mit Beispieldaten):

    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 "JSON.au3"
    
    _Main()
    
    Func _Main()
        Local $aTable[][3] = _
            [ _
                ['Feature',             'Technologie',    'Status'], _
                ['REST API - User',     'Node.js',        'Fertig'], _
                ['Datenbank-Migration', 'SQL',            'Geplant'], _
                ['Frontend Dashboard',  'React',          'Im Review'], _
                ['Unit Tests - Auth',   'Python',         'In Arbeit'], _
                ['CI/CD Pipeline',      'GitHub Actions', 'Fertig'], _
                ['Performance Tuning',  'Go',             'Offen'] _
            ]
    
        Local $aList[] = _
            [ _
                'Weekday', _
                'Monday', _
                'Tuesday', _
                'Wednesday', _
                'Thursday', _
                'Friday', _
                'Saturday', _
                'Sunday' _
            ]
    
        _WriteFile('.\output\json-generate-table.json', _JSON_Generate($aTable))
        _WriteFile('.\output\array-to-json-table.json', _JSON_Unminify(_ArrayToJson($aTable)) & @CRLF)
        
        _WriteFile('.\output\json-generate-list.json',  _JSON_Generate($aList))
        _WriteFile('.\output\array-to-json-list.json',  _JSON_Unminify(_ArrayToJson($aList)) & @CRLF)
    EndFunc
    
    Func _ArrayToJson(ByRef $aTable)
        Local $iRows   = UBound($aTable)
        Local $iColums = UBound($aTable, 2)
    
        If $iRows < 2 Then
            Return '[]'
        EndIf
    
        If $iColums < 2 Then
            Return _Array1DToJson($aTable)
        EndIf
    
        Local $aKeys[$iColums]
        For $iCol = 0 To $iColums - 1
            $aKeys[$iCol] = $aTable[0][$iCol]
        Next
    
        Local $sJson = '['
    
        For $iRow = 1 To $iRows - 1
            $sJson &= '{'
    
            For $iCol = 0 To $iColums - 1
                $sJson &= StringFormat('"%s":"%s"', $aKeys[$iCol], $aTable[$iRow][$iCol])
                If $iCol < $iColums - 1 Then
                    $sJson &= ','
                EndIf
            Next
    
            $sJson &= '}'
            If $iRow < $iRows - 1 Then
                $sJson &= ','
            EndIf
        Next
    
        $sJson &= ']'
    
        Return $sJson
    EndFunc
    
    Func _Array1DToJson(ByRef $aList)
        Local $iRows = UBound($aList)
    
        If $iRows < 2 Then
            Return '{}'
        EndIf
    
        Local $sKey  = $aList[0]
        Local $sJson = StringFormat('{"%s":[', $sKey)
    
        For $iRow = 1 To $iRows - 1
            $sJson &= StringFormat('"%s"', $aList[$iRow])
            If $iRow < $iRows - 1 Then
                $sJson &= ','
            EndIf
        Next
    
        $sJson &= ']}'
    
        Return $sJson
    EndFunc
    
    Func _WriteFile($sFile, $sText)
        Local Const $iUtf8NoBom = 256
        Local Const $iOverwriteCreation = 2 + 8
        Local Const $iMode = $iUtf8NoBom + $iOverwriteCreation
    
        Local $hFile = FileOpen($sFile, $iMode)
        FileWrite($hFile, $sText)
        FileClose($hFile)
    EndFunc
    Alles anzeigen
    1. Schaue dir doch mal bitte die verschiedenen JSON output Dateien an (im Verzeichnis output nach Skriptausführung).
    2. _JSON_Generate hat einen Zeilen-Fokus (so nenne ich es mal). Somit sind alle Zeilen dann auch JSON arrays.
      Jedoch wollte ich einen Spalten-Fokus (erste Spalte Key, erste Zeile dann Value). Erschließt sich besser wenn man es siehst.
    3. Mir ist klar, dass keine nested Array in Array Kombinationen mit _ArrayToJson abgebildet werden können, ist auch gar nicht der Anpruch.

    Wäre dies etwas was in die UDF passen würde? Falls ja, dann stelle ich gern den PR dazu, außer du willst es ganz anders - wie ich dich kenne performanter - machen 😇 .

    JSON.au3 download

    Output:

    json-generate-table.json
    JSON
    [
    	[
    		"Feature",
    		"Technologie",
    		"Status"
    	],
    	[
    		"REST API - User",
    		"Node.js",
    		"Fertig"
    	],
    	[
    		"Datenbank-Migration",
    		"SQL",
    		"Geplant"
    	],
    	[
    		"Frontend Dashboard",
    		"React",
    		"Im Review"
    	],
    	[
    		"Unit Tests - Auth",
    		"Python",
    		"In Arbeit"
    	],
    	[
    		"CI/CD Pipeline",
    		"GitHub Actions",
    		"Fertig"
    	],
    	[
    		"Performance Tuning",
    		"Go",
    		"Offen"
    	]
    ]
    Alles anzeigen
    array-to-json-table.json
    JSON
    [
    	{
    		"Feature": "REST API - User",
    		"Technologie": "Node.js",
    		"Status": "Fertig"
    	},
    	{
    		"Feature": "Datenbank-Migration",
    		"Technologie": "SQL",
    		"Status": "Geplant"
    	},
    	{
    		"Feature": "Frontend Dashboard",
    		"Technologie": "React",
    		"Status": "Im Review"
    	},
    	{
    		"Feature": "Unit Tests - Auth",
    		"Technologie": "Python",
    		"Status": "In Arbeit"
    	},
    	{
    		"Feature": "CI/CD Pipeline",
    		"Technologie": "GitHub Actions",
    		"Status": "Fertig"
    	},
    	{
    		"Feature": "Performance Tuning",
    		"Technologie": "Go",
    		"Status": "Offen"
    	}
    ]
    Alles anzeigen
    json-generate-list.json
    JSON
    [
    	"Weekday",
    	"Monday",
    	"Tuesday",
    	"Wednesday",
    	"Thursday",
    	"Friday",
    	"Saturday",
    	"Sunday"
    ]
    array-to-json-list.json
    JSON
    {
    	"Weekday": [
    		"Monday",
    		"Tuesday",
    		"Wednesday",
    		"Thursday",
    		"Friday",
    		"Saturday",
    		"Sunday"
    	]
    }
    Alles anzeigen


    Viele Grüße
    Sven

  • Fronius Webseite auslesen

    • SOLVE-SMART
    • 6. September 2025 um 22:08

    WebDriver Beispiel/Variante (6 Sek.).
    HTTP-Request-Variante (OIDC) geht sicher schneller, aber auch ggf. komplexer.

    Hier zunächst der Login (mit dummy Daten, daher kein erfolgreicher Login).

    GitHub - sven-seyfert/autoit-webdriver-boilerplate at fronius-pv-anlage
    The project &quot;autoit-webdriver-boilerplate&quot; can be used as quick entry point for the awesome &quot;au3WebDriver&quot; project by @Danp2 (and @mlipok).…
    github.com

    Was musst du tun/anpassen, nachdem du "Download ZIP" gemacht hast.
    Oder du clone'st das Repo., wenn du über Git gehen willst.

    • Screenshot 1.png, Zeile 38 (und bei Bedarf 39) anpassen
    • Screenshot 2.png, Zeile 7 Login Daten (und bei Bedarf 8) anpassen
    • Screenshot 3.png, dient nur dem Verständnis was beim Login passiert (Überraschung 😆)
    • Screenshot 4.png, dient nur dem Verständnis wie man an die HTML Elemente mit XPath heran kommt

    What's next?
    Sobald du bestätigst, dass es klappt bei dir Tweaky , können wir die PV-Anlage Daten aufspüren und extrahieren, je nach Bedarf deines Bekannten. Dazu bitte Kontaktaufnahme via Direktnachricht.

    Viele Grüße
    Sven

    🖼 Screenshots

    Do you like it? Give the project a ⭐ Star.

  • Fronius Webseite auslesen

    • SOLVE-SMART
    • 6. September 2025 um 19:50

    Zum einen war das nur eine "Etwa-Angabe" mit den 2 min, da ich nicht weiß wie viel Daten durch den WebDriver gezogen werden müssen, zum anderen weiß ich nicht wie viel navigiert werden muss usw.
    Es kann auch in 30 sec oder schneller abgeschlossen sein.

    Zu deiner Frage: Es gibt nicht "den einen" WinHTTP Befehl mit dem du dich einloggst. Du musst das Login Verfahren (Authentifizierung via OpenID Connect flow) beachten. Das werden mehrere GET/POST requests mit Cookie- und Header-Verwendung sein. Doch auch dies sind Annahmen. Zwar ziemlich Sichere, doch das wird sich zeigen wie der Anbieter/Server es verwendet.

    Ohne Zugangsdaten wird das so oder so nix, außer du willst dich via WebDriver (ich wechsle wieder den Kontext) an den offenen Browser hängen, in dem die Session und damit der erfolgreiche Login bereits besteht. Auch dies erfordert die Credentials einmalig.

    Sind das wirklich vertrauliche Daten? Wenn du mir die Daten zukommen lässt, kann ich herum experimentieren. Doch dies erfordert natürlich vertrauen, dass verstehe ich.

    Viele Grüße
    Sven

    Nachtrag: _WinHttpSimpleSSLRequest ist schon okay, nur musst du die richtigen Parameter und Werte übergeben, die findest du aber nicht so einfach. Daher der Hinweis zu Cookies und Header. Einfacher wird wahrscheinlich der WebDriver Weg sein.

  • Fronius Webseite auslesen

    • SOLVE-SMART
    • 6. September 2025 um 16:34

    Wenn es egal ist, ob die Daten die dein Bekannter herunterladen möchte, innerhalb von < 5 sec heruntergeladen oder < 2 min, dann können wir auch den WebDriver Weg gehen. Doch auch da, müssen wir erstmal am Login vorbei.

    Ich kann dir das Template bis zum Login bereitstellen, dann kannst du bei dir testen und dann kommt der zweite Schritt, die eigentlichen Daten holen. Dafür müssten wir wahrscheinlich mal zusammen drauf schauen, wenn es zügig gehen soll. Denn ansonsten schicken wir etliche Screenshots usw. hin und her, was mühsig ist.

    Wenn du magst und sonst keiner eine schnellere oder einfacherer Lösung hier haben sollte, schreibe mich gern mal per Direktnachricht an.

    Ich bin ab heute Abend wieder am Rechner.

    Viele Grüße
    Sven

  • Fronius Webseite auslesen

    • SOLVE-SMART
    • 6. September 2025 um 14:41

    Hi Tweaky ,

    liebend gern würde ich dir helfen, doch zunächst brauche ich erstmal einen Account (Test-Account) von dir 😅 , da ich/wir ansonsten nur die OIDC authorization Seite (die Login) Seite sehen und dort nicht weiter kommen. An sich wird es dann über mind. zwei Requests laufen, wenn es der Standard flow von OpenID Connect ist. Also ein Request für die Authentifizierung, damit erhällt man den Token, welchen man dann dem /token Request mitgeben muss, damit man auf der "eingeloggten" Seite landet, die du wahrscheinlich siehst.

    Danach können wir uns um die Daten kümmern, die du abgreifen (scrappen) möchtest. Doch vorher erstmal der Login.

    Ich habe sowas schon einige Male gemacht, daher kein riesen Akt, doch ich benötige Credentials 😁 .
    Falls der OpenID Connect flow ein unüblicher ist, wird es komplizierter (zumindest für mich).

    Das Ganze würde ich dann in bash/shell und AutoIt aufteilen, anstatt über die WinHTTP zu gehen, da hier mit Cookies gearbeitet werden muss.

    Nicht alle Parameter brauchen wir dann, aber einige
    Code
    https://login.fronius.com/authenticationendpoint/login.do
    ?client_id=mf_o9iTAyKemNLQTa6Sp6HYonCIa
    &commonAuthCallerPath=%2Foauth2%2Fauthorize
    &forceAuth=false
    &nonce=638927594827919966.OTY0ZTBiMjEtOWNlOC00NjhlLWE2NzktZjg1MmMyNzFmYWMyNGIyMDYyNjktOTUyNS00NmZhLWFiMjEtYmIzZmVlNmU0NzFh
    &passiveAuth=false
    &redirect_uri=https%3A%2F%2Fwww.solarweb.com%2FAccount%2FExternalLoginCallback
    &response_mode=form_post
    &response_type=code+id_token
    &scope=openid+profile+solarweb+solweb_browserid_dab8e5a11388a82a73864718098bb87f
    &state=OpenIdConnect.AuthenticationProperties%3DYJvfhtbK35iRQnPx6YBi9aJZT-LD-V83rvbIxZcxi6ysyiVWTPTEcbRjXBxvv-MB-If_NVHxRbQkM_-AlJmHmaxG09CQOEaag0KjNdnzGdRnIju9fQt-QOczfFHKAjlNlKyZL8AczTzi15AaIs8HM8NWCv-YbBRPZ9v5y-4OY022T4Sqo9Q3ckE0seQLqTq-8B9lKnLgf-thimJQzo79Rafm99ydsmdDoK2wnPM-GJbsolHD6V4IyrrI2qyHstBSrAESoRzrRAe93XcGMEjTNyx379K7aqFfnMJwvw97lpMxAG_Ew50_GhnyCPcwnW8twheqCpno1BEVTMIcVW1b86pkvEo
    &tenantDomain=carbon.super
    &x-client-SKU=ID_NET472
    &x-client-ver=8.0.2.0
    &sessionDataKey=f1ef66ce-68bb-482e-b018-2e9901eefa8f
    &relyingParty=mf_o9iTAyKemNLQTa6Sp6HYonCIa
    &type=oidc
    &sp=Solar.web+-+Portals
    &isSaaSApp=false
    &authenticators=SAMLSSOAuthenticator%3AFronius+Login%3BFroniusBasicAuthenticator%3ALOCAL
    Alles anzeigen

    Viele Grüße
    Sven

  • Datumsformat

    • SOLVE-SMART
    • 2. September 2025 um 20:17

    Gerne 🤝 .

    Viele Grüße
    Sven

  • Datumsformat

    • SOLVE-SMART
    • 2. September 2025 um 08:46

    Falls du Jensen.. wirklich vom 12 Std. Eingangsformat "HH:MM am|pm" (08:30 pm) zum 24 Stunden Format "HH:MM" (20:30) wechseln willst und nur die PM/AM Angabe hast, dann hilft dir die folgende Funktion:

    AutoIt
    Func _Time12hTo24h($sTime)
        Local Const $iLeadingTrailingFlag = 1 + 2
    
        $sTime = StringStripWS($sTime, $iLeadingTrailingFlag)
        $sTime = StringLower($sTime)
    
        Local Const $bIsPM = (StringInStr($sTime, 'pm') > 0)
        Local Const $bIsAM = (StringInStr($sTime, 'am') > 0)
    
        Local Const $sValidCharsPattern = '^[0-9]{1,2}:[0-9]{1,2}(?:\s?(?:am|pm))?$'
    
        If Not StringRegExp($sTime, $sValidCharsPattern) Then
            Return SetError(1, 0, -1)
        EndIf
    
        $sTime = StringRegExpReplace($sTime, '[^0-9:]', '')
    
        Local $aTime   = StringSplit($sTime, ':')
        Local $iHour   = Number($aTime[1])
        Local $iMinute = Number($aTime[2])
        Local $iSec    = 0
    
        If $aTime[0] >= 3 Then
            $iSec = Number($aTime[3])
        EndIf
    
        Local $bIsValid = True
        Select
            Case $iHour < 0 Or $iHour > 12
                $bIsValid = False
            Case $iMinute < 0 Or $iMinute > 59
                $bIsValid = False
            Case $iSec < 0 Or $iSec > 59
                $bIsValid = False
        EndSelect
    
        If Not $bIsValid Then
            Return SetError(1, 0, -2)
        EndIf
    
        If $bIsPM And $iHour < 12 Then
            $iHour += 12
        EndIf
    
        If $bIsAM And $iHour = 12 Then
            $iHour = 0
        EndIf
    
        Local $sHour   = StringRight('0' & $iHour, 2)
        Local $sMinute = StringRight('0' & $iMinute, 2)
    
        Return $sHour & ':' & $sMinute
    EndFunc
    Alles anzeigen

    Okay:

    AutoIt
    ConsoleWrite(_Time12hTo24h('1:20 AM') & @CRLF)  ; 01:20
    ConsoleWrite(_Time12hTo24h('1:20 PM') & @CRLF)  ; 13:20
    ConsoleWrite(_Time12hTo24h('08:30 PM') & @CRLF) ; 20:30
    ConsoleWrite(_Time12hTo24h('12:00 AM') & @CRLF) ; 00:00
    ConsoleWrite(_Time12hTo24h('12:01 AM') & @CRLF) ; 00:01
    ConsoleWrite(_Time12hTo24h('12:00 PM') & @CRLF) ; 12:00
    ConsoleWrite(_Time12hTo24h('12:01 PM') & @CRLF) ; 12:01
    ConsoleWrite(_Time12hTo24h('7:5 pm') & @CRLF)   ; 19:05
    ConsoleWrite(_Time12hTo24h('7:5pm') & @CRLF)    ; 19:05
    ConsoleWrite(_Time12hTo24h('7:5 am') & @CRLF)   ; 07:05
    ConsoleWrite(_Time12hTo24h('7:5') & @CRLF)      ; 07:05
    ConsoleWrite(_Time12hTo24h('08:30') & @CRLF)    ; 08:30
    Alles anzeigen

    Fehlerbehandlung:

    AutoIt
    ConsoleWrite(_Time12hTo24h('25:30') & @CRLF)      ; -2
    ConsoleWrite(_Time12hTo24h('14:61') & @CRLF)      ; -2
    ConsoleWrite(_Time12hTo24h('0830') & @CRLF)       ; -1
    ConsoleWrite(_Time12hTo24h('08 : 30') & @CRLF)    ; -1
    ConsoleWrite(_Time12hTo24h('08: 30') & @CRLF)     ; -1
    ConsoleWrite(_Time12hTo24h('8: 30') & @CRLF)      ; -1
    ConsoleWrite(_Time12hTo24h('-1:-1') & @CRLF)      ; -1
    ConsoleWrite(_Time12hTo24h('*12:*05') & @CRLF)    ; -1
    ConsoleWrite(_Time12hTo24h('*12:*05 pm') & @CRLF) ; -1

    Viele Grüße
    Sven

  • Datumsformat

    • SOLVE-SMART
    • 1. September 2025 um 22:23

    Hi Jensen.. ,

    schau' dir mal die Hilfe zu _DateTimeFormat an. Dein $sZeit Format ist falsch.

    Input date in the format "YYYY/MM/DD[ HH:MM:SS]"

    Korrigierter Code:

    AutoIt
    #include <Date.au3>
    
    Local $sZeit = "2025/09/01[ 20:30:00]"
    ; In 24h-Format umwandeln
    Local $sNeuZeit = _DateTimeFormat($sZeit, 4)
    
    MsgBox(0, "Ergebnis", $sNeuZeit) ;Ausgabe soll sein: 20:30

    Viele Grüße
    Sven

  • Windows Graphics Capture API (WinRT) Fullscreen Capturing Test

    • SOLVE-SMART
    • 27. August 2025 um 15:05

    Capture_3440x1440.webp, 6.946 KB

    Code
    Target fps: 30
    Recording time: 20 seconds
    Recording screen dim: 3440 x 1440
    
    Starting fullscreen capturing in 3 seconds...
    kmin: 24
    kmax: 38
    ellapsed: 20.18961020000279 seconds
    frames captured: 142        7.033320534340003 fps
    frame index: 142            7.033320534340003 fps
    delta : 0                   0 %
    total frames: 600           target fps 30 delta: 0.2366666666666667 %
    File size: 7112614 bytes
    
    Done
    Alles anzeigen

    Läuft mit Win10, jedoch ein wenig ruckelig bei mir.

    Mal schauen ob dir das hilft UEZ 🤞 .

    Viele Grüße
    Sven

  • Email versenden

    • SOLVE-SMART
    • 15. August 2025 um 10:54

    Meiner Ansicht nach liegt das (wahrscheinlich konfigurative) Problem bei dir lokal golum .
    Die Anforderungen an SMTP seitens GMX sind zum einem nicht unüblich und zum anderen auch nicht besonders strikt oder so.

    • Mit dem Powershell-Skript konnte ich erfolgreich von GMX zu WEB oder von GMX zu GMAIL Emails versenden.
    • Das AutoIt-Skript von gmmg funktioniert bei mir ebenfalls.
    • Beides habe ich unter Win10 und Win11 ohne "Spezialeinstellungen" erfolgreich laufen lassen können.

    Daher bin ich auch der Meinung das dein System entsprechend angepasst werden muss, da SMTP seit Jahrzehnten recht unverändert ist und "nur" TLS, SSL und wie sie alle heißen als Hürden (oder als zusätzlicher Anspruch an die Sicherheit) dazugekommen ist.

    Ich verfolge den Thread auf jeden Fall mit Spannung 😀 - mal schauen was es am Ende bei dir gewesen sein wird.

    Viele Grüße
    Sven

  • Email versenden

    • SOLVE-SMART
    • 14. August 2025 um 16:21

    Oha, die 2'er Version!? Ohne zu recherchieren oder ein LLM zu befragen weiß ich nicht, wie das Cmdlet damals war/was es braucht. Meine erste Empfehlung ist auf mind. Win10 umsteigen 😅 , und zweitens zumindest auf Powershell 5.1 (auch unter Windows 7 möglich) zu upgraden.

    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™