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

  • iframes Webdriver

    • MojoeB
    • 3. August 2023 um 11:00

    hey, bin etwas am verzweifeln.

    Ich kann zwar durch die Frames schalten, und weitere Elemente auf den Frames suchen.

    Aber wie erfahre ich auf welchem Frame ich mich grade befinde?

    Code
    Global $aFrames[0]
    $aFrames= _WD_FrameList($oSession, True , 5000 )
    _ArrayDisplay($aFrames);liste
    Code
    func test(byref sSession, $sXpath)   
     Local $btn
        Local $frameCount = _WD_GetFrameCount($sSession)
    
        If $frameCount > 0 Then
            For $i = 0 To $frameCount - 1 Step 1
                _WD_FrameEnter($sSession, $i) ; hier betritt er die Frames, 
    
                $btn = _WD_WaitElement($sSession, $_WD_LOCATOR_ByXPath, $sXpath, 0, 150)
                If StringLen($btn) > 0 Then
                    _WD_ElementAction($sSession, $btn, 'click')
                    _WD_LoadWait($sSession, 5000, 10000)
                   ExitLoop
                ElseIf $frameCount = 0 Then
                    $btn = _WD_WaitElement($sSession, $_WD_LOCATOR_ByXPath, $sXpath, 0, 5000)
                    _WD_ElementAction($sSession, $btn, 'click')
                EndIf
            Next
            MsgBox(0,  '0', NULL)
            _WD_FrameEnter($sSession, Null); <-- ich habe keine Ahnung ob das richtig ist, ich wollte wieder auf den Standard Frame zurück.
        EndIf
    endfunc
    Alles anzeigen
  • Zu einem bestimmten Tab in Chrome springen und dort in der eingabezeile etwas rein kopieren und aufrufen

    • MojoeB
    • 22. Juli 2023 um 15:14

    ich habe zwar immer noch nicht den nutzen verstanden,

    also den zweck.

    Wenn ich etwas suche brauche ich 1 Tab.

    In die Adresszeile gebe ich mein Suchbegriff ein und Google erscheint?!

    Wenn ich etwas anderes suchen möchte wo ich weiß das gibt es nur auf dieser Seite dann öffne ich diese Seite und suche dort?

    und jede Homepage ist unterschiedlich also solltest du auch wissen welche Seiten du aufrufen möchtest.

    Aber du solltest wie in gpt vorgeschlagen auf Webdriver gehen.

    Deine Gruppe an Tabs siehst du dann wohlmöglich nur wenn du über

    WebDriver den Browser mit deinem Profil startest.

    Ansonsten wirst du wahrscheinlich viele unerwartete Probleme haben.

    Wenn du es weiter ohne diesen versuchst.


    Der Webdriver wurde ja extra für Automatisierung entwickelt,

    und seit dem Webdriver draußen ist haben bei mir die Probleme damals auch

    angefangen, wenn es nicht der IE war.

    Chatgpt fantasiert sehr gut deshalb solltest du auch wenigstens wissen oder schon mal gehört haben was GPT dir vorschlägt, bevor du vertraust.

    Ich glaube früher (XP) Zeiten hätte das bestimmt ganz gut funktioniert, was er dir als erstes vorschlägt.

  • Zu einem bestimmten Tab in Chrome springen und dort in der eingabezeile etwas rein kopieren und aufrufen

    • MojoeB
    • 20. Juli 2023 um 21:21

    Willkommen im Forum,

    Was genau ist den dein Ziel ?

    Also ich meine was für einen Nutzen hat deine Idee?

    Zitat von user1961

    ich könnte zwar einfach so Chrome mit dem string aufrufen aber dann hätte ich jede menge Tabs offen.

    Du meinst Fenster, oder macht er im aktuellen Browser Fenster immer wieder neue Tabs auf?

    Und die Tabs zu Gruppieren gibt es doch seit neustem bei Edge aber im Chrome selber habe ich das noch nicht gesehen, Korrigiert mich gerne.

    Benötigst du dann nur die Daten die er dort aufruft ?


    Hast du schon ein Teil des Skriptes dann Poste diesen doch?^^.

  • Formen erkenn

    • MojoeB
    • 19. Juli 2023 um 22:02

    hmm mir fällt grad ein, du könntest eine ki basteln die das erkennt, wie du die aber trainierst hab ich auch keine Ahnung ^^

    Ich finde den Link leider nicht, aber ich habe aber mal ein Beispiel mit Autoit gesehen das hat einfach die Trainingsdaten vom tranierten phyton modell benutz.

    edit ich dachte es wäre mit phyton Anschein doch keine ai xD, was hab ich da damals gelesen? ... egal ^^


    Aber es hat gut funktioniert, ich glaub Dreiecke und Vierecke wurden aber nicht separat erkannt, dafür alles andere Fahrzeuge, Tiere, Menschen, Waffen etc.

    Wenn ich den Link finde poste ich ihn das ist sehr interessant^^.


    hier der link :

    Real-Time Object Detection using YOLOv3 wrapper - AutoIt Example Scripts - AutoIt Forums (autoitscript.com)
    weitere Infos dazu : YOLO: Real-Time Object Detection (pjreddie.com)

  • Formen erkenn

    • MojoeB
    • 18. Juli 2023 um 19:04
    Code
    #include <AutoItConstants.au3>
     
    Local $searchColor = 0x5B75E8; Blaue Farbe (RGB-Format)
    Local $tolerance = 10 ; Toleranzwert für Farbunterschiede
     
    Local $pos = PixelSearch(0, 0, @DesktopWidth, @DesktopHeight, $searchColor, $tolerance)
    If Not @error Then
        MsgBox(0, "Form erkannt", "Ein blaues Element wurde gefunden an Position: X=" & $pos[0] & ", Y=" & $pos[1])
    Else
        MsgBox(0, "Form nicht gefunden", "Es wurde kein blaues Element gefunden ")
    EndIf
    Alles anzeigen

    In meinem Beispiel kannst du meine profilanzeige finden wenn es auf dem Bildschirm geöffnet hast.

    Aber lediglich durch die Farbe würd das ausgelöst, wie das mit formen funktioniert weiß ich nicht und ist bestimmt komplexer.

    Vielleicht hilft dir dieser link weiter : OpenCV v4 UDF - AutoIt-Beispielskripte - AutoIt-Foren (autoitscript.com)

  • grundsätzliche Fragen zu Browser

    • MojoeB
    • 14. Juli 2023 um 10:14

    Moombas oke da hast du schon recht, ich hatte es ja getestet und muss sagen wenn er nur 1x mal zu viel clickt fängt er das erste garnicht anzusagen aber das zweite.

    Nur als er beim testen mal sehr oft (geklickt hat) wurde Garnichts mehr angesagt. Und das war auch der Grund für $iclick = 0 in deinem Beispiel mit False.

    Deswegen hätte man das auch leicht in der Funktion Adlib_ansage abfangen können.


    Code
    Func Adlib_ansage()
    
    IF $iClick = True Then Return ; deine variante
    
    IF $iClick = 1 Then Return ;meine varaiante
    
    Uhr_ansagen()
    ConsoleWrite('ANSAGE : ' & _NowTime() & 'Uhr PER ADLIB!!!!' & @CRLF)
    EndFunc ;==>Adlib_ansage
  • grundsätzliche Fragen zu Browser

    • MojoeB
    • 14. Juli 2023 um 09:52
    Zitat von Moombas

    Ich würde den adlib Part auch raus lassen!

    stört der den ?

    Da Webdriver läuft sollte es doch kein Problem sein weil dieser ja eine eigene schleife hat und nur befehle von autoit annimmt, sollte es deswegen auch nicht zu Problemen kommen oder?
    Oder sehe ich das komplett falsch ?
    Wenn ich falsch liege, was könnten den für Probleme auftreten ?

  • grundsätzliche Fragen zu Browser

    • MojoeB
    • 13. Juli 2023 um 15:08

    supi freut mich :)

    du kannst dein Thema oben als erledigt markieren.

  • grundsätzliche Fragen zu Browser

    • MojoeB
    • 12. Juli 2023 um 23:13

    natürlich beendet sich das Skript dann

    Es funktioniert so wie ich es verstanden habe.

    wie möchtest du das Skript den beenden, wenn es kein Befehl dafür geben würde?

    In diesem fall bau dir ESC oder etwas anderes als HOTKEY ein damit du das Skript auch beenden kannst, das Skript braucht die anweißung Session und Webdriver zu schließen, ohne das bleibt das natürlich im Taskmgr.

    so in deinem beispiel ist

    $endtime = '22:08:00' = Uhrzeit ansagen + BEENDEN

    was willst du den abfrage $endzeit eigentlich erreichen?

    Entweder soll es weiterlaufen oder beendet werden es macht für mich kein sinn was du da angemerkt hast. Aber ist ja nicht schlimm.

    Code
    HotKeySet("{ESC}", "beenden");(kannst natürlich eine eigne Tastenkombi raussuchen) um das Skript händisch zu beenden.
    
    
    Func beenden()
    _WD_DeleteSession($oSession)
    _WD_Shutdown()
    ConsoleWrite('Script wurde Erfolgreich beendet.' & @CRLF)
    Exit
    EndFunc ;==>beenden


    dann kannst Zeilen 22, 21, 16 bis 14 löschen & natürlich, Global $end = 0 kannste auch löschen.

  • Browser minimiert oder hide starten

    • MojoeB
    • 12. Juli 2023 um 08:20

    leider kann ich dir nicht sagen wieso es nicht funktioniert fakt ist wenn du es mit der option headless startest kenn ich keine Möglichkeit wie du wieder an das Fenster ran kommst.

    außer wie in meinem anderen Beitrag schon beschrieben, in dem du es normal nicht headless startest, dann funktionieren die Autoit Funktionen.

  • Browser minimiert oder hide starten

    • MojoeB
    • 12. Juli 2023 um 05:55

    hay schau dir mal diesen Post an,

    Beitrag

    RE: grundsätzliche Fragen zu Browser

    […]

    also nach start alle 30 min bis 15:43? oder wie?

    hier habe mein Beispiel nochmal geändert, da siehst du wie man ohne den Start Parameter das Fenster kontrollieren kannst.

    Das hier ausklammern :

    _WD_CapabilitiesAdd('args', '--headless') ; Füge die Capability "args" mit dem Wert "--headless" hinzu, um den Browser im Headless-Modus zu starten

    ansonsten habe dir zum testen hotkeys eingebaut da kannste sehen das show, hide, max, min kein Problem sind.

    (Quelltext, 107 Zeilen)

    Edit habe grad gesehen das…
    MojoeB
    10. Juli 2023 um 00:06


    du müsstest nur auf Firefox anpassen,

    du musst den Fenster Titel ermitteln & damit kannst du dann WinGetHandle setzen, danach kannst du die Variable weiterverarbeiten mit WinSetState(var, '', @SW_HIDE)

  • grundsätzliche Fragen zu Browser

    • MojoeB
    • 11. Juli 2023 um 20:43

    Moombas

    Cool ;) deine Variante habe ich auch noch nie so in den Code geschrieben, muss ich mir mal aneignen.

    Ich versteh nicht warum AdlibRegister in die Mitte ?

    WER LESEN KANN IST KLAR IM VORTEIL ^^ sry jetzt erst gecheckt.

    Raleigh

    Du kannst es einfacher machen ich teste es grad, natürlich mit anderen Zeiten.

    So nun geändert :

    AutoIt
    #include <wd_helper.au3>
    #include <wd_capabilities.au3>
    #include <Date.au3>
    
    Global $oSession = '', $capsi, $hWndBrowser, $iclick = 0, $end = 0
    Global $endtime = '15:43:00', $itime_1 = '28', $itime_2 = '58', $itime_adl = 1800000
    
    AdlibRegister('Adlib_ansage', $itime_adl)
    start()
    
    While 1
        Sleep(50) ;einfach um die prozessorlast unten zu halten.
    
        If $end = 1 Then
            beenden()
        EndIf
    
        If $iclick = 0 Then
            If _NowTime() = $endtime Then
                Uhr_ansagen()            
                Sleep(10000);es dauert etwas bis die Ansage anläuft deshalb hier nochmal schlafen.
                $end = 1
            ElseIf StringSplit(_NowTime(), ':')[2] = $itime_1 And StringSplit(_NowTime(), ':')[3] = '00' Then
                Uhr_ansagen()
                ConsoleWrite('ANSAGE : ' & _NowTime() & 'Uhr ELSEIF ! 1!' & @CRLF)
            ElseIf StringSplit(_NowTime(), ':')[2] = $itime_2 And StringSplit(_NowTime(), ':')[3] = '00' Then
                Uhr_ansagen()
                ConsoleWrite('ANSAGE : ' & _NowTime() & 'Uhr ELSEIF ! 2!' & @CRLF)
            EndIf
        ElseIf $iclick = 1 Then
            Sleep(1000) ;Schlaf ca. 1sec
            $iclick = 0
        EndIf
    WEnd
    
    Func start()
        $capsi = SetupEdge()
        $oSession = _WD_CreateSession($capsi)
        Local $sLocalFilePath = @ScriptDir & '\talk.html'
        Local $sLocalFileURL = "file:///" & StringReplace($sLocalFilePath, "\", "/")
        _WD_Navigate($oSession, $sLocalFileURL)
        Uhr_ansagen()
        ConsoleWrite('ANSAGE : ' & _NowTime() & 'Uhr PER START!!!!' & @CRLF)
    EndFunc   ;==>start
    
    Func Adlib_ansage()
        Uhr_ansagen()
        ConsoleWrite('ANSAGE : ' & _NowTime() & 'Uhr PER ADLIB!!!!' & @CRLF)
    EndFunc   ;==>Adlib_ansage
    
    Func Uhr_ansagen()
         
        Local $element = _WD_FindElement($oSession, 'xpath', '//*[@id="clockID"]')
        _WD_ElementAction($oSession, $element, 'Click')
        $iclick = 1
    EndFunc   ;==>Uhr_ansagen
    
    Func beenden()
        _WD_DeleteSession($oSession)
        _WD_Shutdown()
        ConsoleWrite('Script wurde Erfolgreich beendet.' & @CRLF)
        Exit
    EndFunc   ;==>beenden
    
    Func SetupEdge()
        _WD_UpdateDriver("msedge", @ScriptDir)
        _WD_Option('Driver', @ScriptDir & '\msedgedriver.exe')
        _WD_Option('Port', 9515)
        _WD_Startup()
        ; Startparameter sammeln
        _WD_CapabilitiesStartup()
        _WD_CapabilitiesAdd('alwaysMatch', 'msedge')
        _WD_CapabilitiesAdd('excludeSwitches', 'enable-automation')
        _WD_CapabilitiesAdd('args', 'guest')
        _WD_CapabilitiesDump(@ScriptLineNumber)
        _WD_CapabilitiesAdd('args', '--headless')
        Local $hWnd = WinWait("[CLASS:ConsoleWindowClass]", "", 10)
        WinSetState($hWnd, "", @SW_HIDE)
        Local $sCapabilities = _WD_CapabilitiesGet()
        Return $sCapabilities
    EndFunc   ;==>SetupEdge
    Alles anzeigen
  • grundsätzliche Fragen zu Browser

    • MojoeB
    • 10. Juli 2023 um 22:58

    alles gut^^ da finden wir bestimmt noch einen weg bin aber für heute erstmal raus ^^

  • grundsätzliche Fragen zu Browser

    • MojoeB
    • 10. Juli 2023 um 19:38

    hm... von wo hast du deine WinHttp.au3 ?

    eigentlich ist das nur eine Funktion der die Version Nummer von winhttp.au3 zurückgibt.

    (in winhttp.au3)

    zeile *2401

    Code
    Func __WinHttpVer()
    
    Return "1.6.4.1"
    
    EndFunc

    lad dir am besten die 1.6.4.1 runter und füge Sie deinem Includes Ordner hinzu.

    Dann sollte es hoffentlich gehen.

    eben mal geschaut : Releases · dragana-r/autoit-winhttp (github.com)

  • grundsätzliche Fragen zu Browser

    • MojoeB
    • 10. Juli 2023 um 16:13

    Raleigh


    oh das hab ich bei mir nicht gemerkt da ich die json schon auf dem pc hatte hier findest du die json.au3 : A Non-Strict JSON UDF (JSMN) - AutoIt Example Scripts - AutoIt Forums (autoitscript.com)


    Info für dich wenn du startetes mit : _WD_CapabilitiesAdd('args', '--headless')

    dann sagt er sofort beim Start die Uhrzeit an, dann funktionieren aber die hide/show/max/mini Funktionen nicht mehr.

    Wenn du ohne : _WD_CapabilitiesAdd('args', '--headless')

    startest dann sagt er es nicht an. dann müsstest du am start noch mal die funktion uhrzeit_ansagen aufrufen.

  • grundsätzliche Fragen zu Browser

    • MojoeB
    • 10. Juli 2023 um 00:06
    Zitat von Raleigh

    Die bestimmten Ansagezeiten lauten beispielsweise 12:28, 12:58, dann weiter jede 30 Minuten. Zusätzlich noch die Uhrzeit 15:43 Uhr.

    also nach start alle 30 min bis 15:43? oder wie?

    hier habe mein Beispiel nochmal geändert, da siehst du wie man ohne den Start Parameter das Fenster kontrollieren kannst.

    Das hier ausklammern :

    _WD_CapabilitiesAdd('args', '--headless') ; Füge die Capability "args" mit dem Wert "--headless" hinzu, um den Browser im Headless-Modus zu starten

    ansonsten habe dir zum testen hotkeys eingebaut da kannste sehen das show, hide, max, min kein Problem sind.

    C
    #include <wd_helper.au3>
    #include <wd_capabilities.au3>
    #include <Date.au3>
    
    Global $oSession = ''
    Global $capsi
    Global $hWndBrowser
    Global $endtime = '15:43:00'
    
    
    
    
    
    HotKeySet("!t", "HotKeySayTime") ; Definiere den Hotkey "Alt + T" und verknüpfe ihn mit der Funktion "HotKeySayTime"
    HotKeySet("{ESC}", "HotKeybeenden") ; Definiere den Hotkey "Alt + T" und verknüpfe ihn mit der Funktion "HotKeySayTime"
    
    ;beispiel wie du hide show min max richtig einsetzt.
    HotKeySet("!h", "hide") ; Definiere den Hotkey "Alt + h" und verknüpfe ihn mit der Funktion "hide"
    HotKeySet("!s", "show") ; Definiere den Hotkey "Alt + s" und verknüpfe ihn mit der Funktion "show"
    HotKeySet("!m", "_MAXIMIZE") ; Definiere den Hotkey "Alt + m" und verknüpfe ihn mit der Funktion "_MAXIMIZE"
    HotKeySet("!n", "_MINIMIZE") ; Definiere den Hotkey "Alt + n" und verknüpfe ihn mit der Funktion "_MINIMIZE"
    
    
    AdlibRegister('Uhr_ansagen', 1800000);alle 30min wiederholen
    
    
    start()
    
    
    While 1
        Sleep(100)
        IF  _NowTime() = $endtime Then ; ist now = endtime dann:
            Uhr_ansagen();endzeit erreicht führe Uhr_ansagen aus 
            HotKeybeenden();beende den webdriver + beendet das script.
        EndIf
    Wend
    
    
    Func start()
        $capsi = SetupEdge()
        $oSession = _WD_CreateSession($capsi)
        
        Local $sLocalFilePath = @ScriptDir & '\talk.html'
        Local $sLocalFileURL = "file:///" & StringReplace($sLocalFilePath, "\", "/")
    
        _WD_Navigate($oSession, $sLocalFileURL)
         Local $sBrowserTitle = '' ; Titel des Browserfensters 
        $sBrowserTitle     = _WD_Action($oSession, 'TITLE', Default); $var füllen mit dem Browserfensters (für hide/show/max/min)
        $hWndBrowser = WinGetHandle($sBrowserTitle); Browserfensters gethandle, speichert das $hWndBrowser in einer globalen variable (für hide/show/max/min)
    EndFunc   ;==>start
    
    
    
    ;beispiel wie du hide show min max richtig einsetzt.
    func hide()    
        WinSetState($hWndBrowser, '', @SW_HIDE) 
    EndFunc
    
    func show()
        WinSetState($hWndBrowser, '', @SW_SHOW) 
    EndFunc
    
    func _MAXIMIZE()
        WinSetState($hWndBrowser, '', @SW_MAXIMIZE) 
    EndFunc
    
    func _MINIMIZE()
        WinSetState($hWndBrowser, '', @SW_MINIMIZE) 
    EndFunc
    
    
    
    Func Uhr_ansagen()
        Local $element = _WD_FindElement($oSession, 'xpath', '//*[@id="clockID"]')
            _WD_ElementAction($oSession, $element, 'Click')
    EndFunc   ;==>Uhr_ansagen
    
    Func HotKeySayTime()
        Uhr_ansagen()
    EndFunc   ;==>HotKeySayTime
    
    Func HotKeybeenden()
    _WD_DeleteSession($oSession)
        _WD_Shutdown()
        Exit 
    EndFunc   ;==>HotKeybeenden
    
    Func SetupEdge()
        _WD_UpdateDriver("msedge", @ScriptDir)
    
        _WD_Option('Driver', @ScriptDir & '\msedgedriver.exe')
        _WD_Option('Port', 9515)
        _WD_Startup()
    
        ; Startparameter sammeln
        _WD_CapabilitiesStartup()
        _WD_CapabilitiesAdd('alwaysMatch', 'msedge')
        _WD_CapabilitiesAdd('excludeSwitches', 'enable-automation')
        _WD_CapabilitiesAdd('args', 'guest')
        _WD_CapabilitiesDump(@ScriptLineNumber)
    ;~     _WD_CapabilitiesAdd('args', '--headless')
        Local $hWnd = WinWait("[CLASS:ConsoleWindowClass]", "", 10)
        WinSetState($hWnd, "", @SW_HIDE)
        Local $sCapabilities = _WD_CapabilitiesGet()
        Return $sCapabilities
    EndFunc   ;==>SetupEdge
    Alles anzeigen

    Edit habe grad gesehen das ich vergessen habe die session zu löschen '_WD_DeleteSession($oSession)'

    gehört noch rein

  • grundsätzliche Fragen zu Browser

    • MojoeB
    • 8. Juli 2023 um 19:35

    falls du noch einer Lösung suchts dann teste mal das :

    Also entpacke einfach den gesagtem Inhalt in den Skript Verzeichnis so das talk.html im selben Verzeichnis liegt dort wo dein Skript liegt, dann schreibe diesen Code in dein Script es öffnet den MS Edge Browser kannst auch auf Firefox umschreiben mit dem

    Code
    ('args', 'guest') 

    wird kein User geladen also auch keine Addos und es ist auch unabhängig von deinen anderen offnen Browser Instanzen, da es über den Webdriver läuft. Wird der Webdriver ordnungsgemäß beendet wird dann wird auch die browsersession geschlossen.

    C
    #include <wd_helper.au3>
    #include <wd_capabilities.au3>
    
    Global $oSession = ''
    Global $capsi
    
    HotKeySet("!t", "HotKeySayTime") ; Definiere den Hotkey "Alt + T" und verknüpfe ihn mit der Funktion "HotKeySayTime"
    HotKeySet("{ESC}", "HotKeybeenden") ; Definiere den Hotkey "ESC" und verknüpfe ihn mit der Funktion "HotKeybeenden"
    
    start() ; Starte die Funktion "start"
    
    While 1
        Sleep(100)
    WEnd
    
    Func start()
        $capsi = SetupEdge() ; Führe die Funktion "SetupEdge" aus und speichere das Ergebnis in der Variable "$capsi"
        $oSession = _WD_CreateSession($capsi) ; Erstelle eine Sitzung mit den übergebenen Capabilities
    
        Local $sLocalFilePath = @ScriptDir & '\talk.html' ; Pfade anpassen entsprechend der lokalen Dateistruktur
        Local $sLocalFileURL = "file:///" & StringReplace($sLocalFilePath, "\", "/")
    
        _WD_Navigate($oSession, $sLocalFileURL) ; Navigiere zur lokalen HTML-Datei "talk.html" mit dem WebDriver
    EndFunc   ;==>start
    
    Func Uhr_ansagen()
        Local $element = _WD_FindElement($oSession, 'xpath', '//*[@id="clockID"]')
        _WD_ElementAction($oSession, $element, 'Click')
        ; Hier könntest du weitere Aktionen nach dem Klick auf das Element "clockID" ausführen
    EndFunc   ;==>Uhr_ansagen
    
    Func HotKeySayTime()
        Uhr_ansagen() ; Rufe die Funktion "Uhr_ansagen" auf, um die Uhrzeit anzusagen
    EndFunc   ;==>HotKeySayTime
    
    Func HotKeybeenden()
        _WD_Shutdown() ; Beende den WebDriver
        Exit ; Beende das Skript
    EndFunc   ;==>HotKeybeenden
    
    Func SetupEdge()
        _WD_UpdateDriver("msedge", @ScriptDir) ; Aktualisiere den Edge-Driver im lokalen Verzeichnis
    
        _WD_Option('Driver', @ScriptDir & '\msedgedriver.exe') ; Setze den Pfad zum Edge-Driver
        _WD_Option('Port', 9515) ; Setze den Port für die WebDriver-Kommunikation
    
        _WD_Startup() ; Starte den WebDriver
    
        _WD_CapabilitiesStartup() ; Starte die Sammlung der Startparameter (Capabilities)
        _WD_CapabilitiesAdd('alwaysMatch', 'msedge') ; Füge die Capability "alwaysMatch" mit dem Wert "msedge" hinzu
        _WD_CapabilitiesAdd('excludeSwitches', 'enable-automation') ; Füge die Capability "excludeSwitches" mit dem Wert "enable-automation" hinzu
        _WD_CapabilitiesAdd('args', 'guest') ; Füge die Capability "args" mit dem Wert "guest" hinzu
        _WD_CapabilitiesDump(@ScriptLineNumber) ; Gib die Capabilities aus
    
        _WD_CapabilitiesAdd('args', '--headless') ; Füge die Capability "args" mit dem Wert "--headless" hinzu, um den Browser im Headless-Modus zu starten
    
        Local $hWnd = WinWait("[CLASS:ConsoleWindowClass]", "", 10) ; Warte auf das Konsolenfenster
        WinSetState($hWnd, "", @SW_HIDE) ; Verstecke das Konsolenfenster
    
        Local $sCapabilities = _WD_CapabilitiesGet() ; Speichere die Capabilities in einer Variable
        Return $sCapabilities ; Gib die Capabilities zurück
    EndFunc   ;==>SetupEdge
    Alles anzeigen


    'Ich möchte zu bestimmten Zeiten die aktuelle Uhrzeit angesagt bekommen.'

    das könntest du auf mehrere arten lösen, reicht dort eine zeit nach dem Start also ein intervall dann kannst du statt wie in meinem beispiel mit hotkey durch

    die Function AdlibRegister ersetzen.

    oder ist hier eine ganz genaue zeit gemeint ?

    edit^^:

    entschuldige die *au3 Dateien findest du hier : Release 1.0.3 · Danp2/au3WebDriver · GitHub

  • iniRead Problem

    • MojoeB
    • 26. Juni 2023 um 14:23
    Code
    Global $ini_user = 'D:\WPS3\Daten\USER.ini'
    Global $ini_fse = 'D:\Fse\Oberflaeche\Fse.ini'
    
    
    Global $copy = ''
    
    $copy=FileCopy($ini_user, @ScriptDir, "1")
    
    If $copy = 1 Then 
    Consolewirte('Filecopy :"' &$ini_user &'", war erfolgreich.')
    Elseif $copy = 0 Then
    Consolewirte('Filecopy :"' &$ini_user &'", fehler!')
    Endif
     
    $copy=FileCopy($ini_fse, @ScriptDir, "1")
    
    If $copy = 1 Then 
    Consolewirte('Filecopy :" ' &$ini_fse &'", war erfolgreich.')
    Elseif $copy = 0 Then
    Consolewirte('Filecopy :" ' &$ini_fse &'", fehler.')
    
    Endif
    Alles anzeigen

    Function FileCopy

    Return Value

    Success: 1.
    Failure: 0.


    was spuckt er den aus wenn du auf den return wert prüfst?


    ups ihr wart alle schneller :/^^ bei mir hat Quellcode Einbindung nicht gewollt.

  • Base32 - Finde den Fehler nicht

    • MojoeB
    • 22. Juni 2023 um 17:00
    Zitat von Musashi

    Nur eine kleine Anmerkung :

    Genau genommen liegt jede außerhalb von Funktionen deklarierte Variable im globalen Gültigkeitsbereich (Scope), selbst wenn das Schlüsselwort Local verwendet wird.

    Umgekehrt sollte man Deklarationen mittels Global innerhalb von Funktionen aber tunlichst vermeiden.

    Gut zu wissen.
    Das wusste ich nicht aber ich hatte auch immer Probleme wenn ich die vars einfach so ins Skript geschrieben habe, seit ich die Regel die ich oben so zu sagen mitgeben habe befolge hatte ich keine Probleme mehr, aber ich bin selber vielleicht auch etwas besser geworden und deswegen hab ich evtl. keine Probleme mehr damit ^^.

  • Base32 - Finde den Fehler nicht

    • MojoeB
    • 21. Juni 2023 um 23:15

    Oke also nur VBA find ich aber gut :).

    Ich mach bisher nur etwas autoit.

    Wenn du sagt du hast die Ansätze nur aus dem Internet dann gebe ich dir nun noch 3 kleine Beispiele zu den oben genannten 3 Szenarien zu den Variablen, dann kannst du es vielleicht besser verstehen und so Umschreiben wie du es benötigst :


    AutoIt
    ;Wenn du eine Variable in mehreren Funktionen verwenden möchtest, ohne sie als Parameter zu übergeben, musst du sie als globale Variable deklarieren.
    ;Das bedeutet, dass du die Variable außerhalb aller Funktionen deklarieren und dann mit dem Schlüsselwort "Global" kennzeichnen musst.
    ;Dadurch wird die Variable für alle Funktionen im Skript zugänglich.
    ;Szenario 1 :
    Global $globalVar = "Hallo Welt!"
    
    Func Funktion1()
        MsgBox(0, "", $globalVar)
    EndFunc
    
    Func Funktion2()
        $globalVar = "Guten Tag!"
        MsgBox(0, "", $globalVar)
    EndFunc
    
    Funktion1()
    Funktion2()
    Alles anzeigen
    AutoIt
    ;Wenn du eine Variable nur in einer Funktion verwenden möchtest, kannst du sie als lokale Variable deklarieren, indem du das Schlüsselwort 
    ;"Local" verwendest.
    ;In diesem Fall ist die Variable nur in der Funktion gültig, in der sie deklariert wurde, und kann nicht von anderen Funktionen im Skript verwendet werden.
    ;Szenario 2 :
    Func Funktion()
        Local $localVar = "Hallo Welt!"
        MsgBox(0, "", $localVar)
    EndFunc
    
    Funktion()
    AutoIt
    ;Um eine globale Variable in eine Funktion einzuführen, kannst du das Schlüsselwort "ByRef" verwenden.
    ;Dadurch wird die Variable als Referenz übergeben, sodass Änderungen an der Variable innerhalb der Funktion den Wert der globalen Variable ändern.
    Global $globalVar = "Hallo Welt!"
    ;Szenario 3 :
    Func Funktion(ByRef $var)
        $var = "Guten Tag!"
        MsgBox(0, "", $var)
    EndFunc
    
    Funktion($globalVar)
    MsgBox(0, "", $globalVar)
    Alles anzeigen

    Die Beispiel sind in getrennten zueinander zu behandeln, da hier ja die vars und Funktionsnamen die gleichen sind.

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™