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

Beiträge von DivineFaith

  • Skript mit F10 starten und mit F9 beenden

    • DivineFaith
    • 14. Februar 2024 um 14:10
    Zitat von SOLVE-SMART

    Hi DivineFaith ,

    ich kann Moombas nur beipflichten und dafür werben für solche Aktionen den WebDriver zu nutzen.
    Dafür habe ich das Projekt "au3webdriver-boilerplate" eingerichtet => soll den Einstieg mit dem Thema erleichtern 🤞 .

    Allerdings/Aber:
    Wenn du deine "Lösung" nicht ausbauen musst/willst, wenn es für dich stabil genug läuft und du auch nicht die Zeit hast eine gewisse Lernkurve zu bewältigen, dann bleibe ggf. einfach bei dem was du hast. Dies wollte ich der Fairness halber zumindest kurz anmerken. Denn nicht jeder Anwendungsfall in diesem Umfeld (Web-Kram) rechtfertigt den Einsatz des WebDriver meiner Meinung nach.

    Nichtsdestotrotz:
    Mächtiger, weniger Fehler anfällig (da robuster) und flexibler ist die Verwendung des WebDriver (Protokolls).

    Viele Grüße
    Sven

    Alles anzeigen

    Ansich ist der WebDriver super dafür geeignet.

    Allerdings da wir den Monitoring Bildschirm nur bei uns in einer kleinen Abteilung nutzten, sollte es so einfach wie möglich bleiben. Da ist es uns egal wenn da ein Mauszeiger wie von Geisterhand über die Oberfläche schwebt ^^. Da wir die Auflösung ebenfalls nicht ändern, ist uns dies auch egal und selbst wenn, kann man das Verhältnis ja schnelle umrechnen und die Koordinaten austauschen.


    Also für unseren Zweck vollkomen ausreichend.

    Allerdings les ich mir das Tutorial trotzdem gerne durch einfach interesse halber!

  • Skript mit F10 starten und mit F9 beenden

    • DivineFaith
    • 14. Februar 2024 um 13:59

    Moombas Ah danke sehr gute idee

  • Skript mit F10 starten und mit F9 beenden

    • DivineFaith
    • 14. Februar 2024 um 13:04
    Zitat von Velted

    Moin,

    ob mit oder ohne Webdriver, für mich ist noch offen, wann und wie auf F9/F10 reagiert werden soll.

    In den bisher eingestellten Beispielen wird der aktuelle Schleifendurchlauf 'in aller Ruhe' beendet. Das ursprüngliche Beispiel aus Beitrag #1 enthält mehrfach

    AutoIt
    ; Pause for 2 Minutes for changing the Dashboard
    			Sleep(120000)

    Das könnte dann schon ein Weilchen dauern, bis das 'Durchschalten' durch die Dashboards beendet wird.

    DivineFaith, soll das so sein? Wenn nicht, was genau soll geschehen?

    Ja da hast du recht, das würde noch etwas dauern, bis das skript beendet wird.
    habe das skript jetzt angepasst und nun pausiert es das skript bevor das nächste Dashboard dran kommt.


    AutoIt
    ; Endless Loop for changing the Dashboard 
    While True
    	if $Run Then
    		
    		; Pause just before clicking
    		Sleep(150) 
    		
    		; Execute left Click on Estate
    		MouseClick("left", 550, 125)
    		
    		; Pause just before clicking
    		Sleep(150) 
    		
    		; Execute left Click on Backup
    		MouseClick("left", 550, 170) 
    		
    		; Pause for 2 Minutes for changing the Dashboard
    		Sleep(120000)
    		
    		if $Run Then 
    		
    			; Pause just before clicking
    			Sleep(250) 
    			
    			; Execute left Click on Reports
    			MouseClick("left", 460, 125)
    		
    			; Execute left Click on Dropdown menu
    			MouseClick("left", 45, 185)
    			
    			; Pause just before Clicking
    			Sleep(150)
    			
    			; Execute the left Click on Overview in the Dropdown menu
    			MouseClick("left",45, 420) 
    			
    			; Pause for 2 Minutes 
    			Sleep(120000) 
    			
    		EndIf
    		
    		IF $Run Then 
    			; Show lower part of the Website
    			MouseWheel("down", 10)
    			
    			; Pause for 2 Minutes
    			Sleep(120000)
    		
    		EndIf
    	
    	
    		IF $Run Then
    		; Go to the top part of the Website
    		MouseWheel("up", 20) 
    		
    		; Execute the left Click on Overview
    		MouseClick("left", 210, 125) 
    		
    		; Pause for 2 Minutes
    		Sleep(120000) 
    		
    		Endif
    	
    	EndIf
    	Sleep(100) 
    WEnd
    Alles anzeigen

    Habe einfach die einzelnen Dashboards jeweils in eine If schleife gehangen und falls ich "F9" drücke und die Variable $Run auf False setzte, wird das nächste Dashboard nicht mehr angezeigt.

    Wenn ich "F10" Daraufhin drücke startet die While schleife von vorne, das ist mir aber vollkomen ausreichend.

  • Skript mit F10 starten und mit F9 beenden

    • DivineFaith
    • 14. Februar 2024 um 09:13
    Zitat von Moombas

    Das Else kannst du weg lassen DivineFaith, das war wie gesagt nur zum Testen/Veranschaulichen. Und das Sleep sitzt an der falschen Stelle (muss vor das Wend)

    Ich empfehle dennoch mal an deiner Stelle das mit dem Webdriver, das SOLVE-SMART netterweise zu diesem Zweck einmal erläutert hat, umzubauen, einfach weil du dann auch unabhängig von Monitorauflösungen und sonstigen Faktoren bist, die zum Beispiel die Position der relevanten Felder beeinflusst oder ob die Webseite/Unterseite überhaupt geladen werden kann. Zudem sieht man dann keinen Cursor umherhuschen, was das ganze dann auch für den Betrachter etwas professioneller macht und teilweise ggf. sogar schneller, weil du nicht zwangsläufig 2Sekunden warten musst, sondern einfach wartest bis das entsprechende Element/Seite fertig geladen wurde.

    Ich vermeide best möglich MouseClick und dein aktuelles Skript kann auch dabei noch optimiert werden, da MouseClick auch Koordinaten unterstützt:

    AutoIt
    ; Set Variable on False so that the script will not start by itself
    $Run = False
    
    ; Set a Hotkey for starting changing the Dashboard
    HotKeySet("{F10}", "_start")
    
    ; Set a Hotkey for stopping changing the Dashboard
    HotKeySet("{F9}", "_pause") 
    
    While True
        If $Run Then 
    			MouseClick("left", 550,125)
    			
    			Sleep(150)
    			MouseClick("left", 550, 170) 
    			
    			; Pause for 2 Minutes for changing the Dashboard
    			Sleep(1200)
    			MouseClick("left", 460, 125)
    
    			MouseClick("left", 45, 185)
    
    			Sleep(150)
    			MouseClick("left", 45, 420) 
    			
    			; Pause for 2 Minutes 
    			Sleep(1200) 
    			
    			; Show lower part of the Website
    			MouseWheel("down", 10)
    			
    			; Pause for 2 Minutes
    			Sleep(1200)
    			
    			; Go to the top part of the Website
    			MouseWheel("up", 20) 
    			
    			; Pause just before clicking
    			MouseClick("left", 210, 125) 
    			
    			; Pause for 2 Minutes
    			Sleep(1100) ;1200-100			
    	EndIf
    	Sleep(100)
    WEnd
    
    Func _start()
    
        $Run = True
    EndFunc
    
    func _pause()
    
        $Run = False
    EndFunc
    Alles anzeigen

    Um aber weitergehend helfen zu können, müsste man die Webseite kennen bzw. ich selber nutze (bisher, mangels fehlender Anforderung) den Webdriver nicht, kann daher dabei dann nicht wirklich helfen.

    Ah ja das mit der unabhängigen Monitorauflösung wäre wirklich super ^^ Dann guck ich mir aufjedenfall mal das Tutorial an, Danke!


    Die Monitoring Website ist Redgate

  • Skript mit F10 starten und mit F9 beenden

    • DivineFaith
    • 14. Februar 2024 um 08:47

    Wurde jetzt gelöst, vielen Dank für eure Hilfe!

  • Skript mit F10 starten und mit F9 beenden

    • DivineFaith
    • 14. Februar 2024 um 08:44
    Zitat von Moombas

    Und um das ganze hier einmal mit einem funktionierendem minimal Beispiel zu füllen:

    AutoIt
    Opt('MustDeclareVars', 1)
    
    HotKeySet("{F10}", "_Start")
    HotKeySet("{F9}", "_Pause")
    HotKeySet("{ESC}", "_End"); just to provide a possibility to stop entire script, you can add a "password" prompt, if needed.
    
    Global $Run = False
    Global Const $time = 500
    
    While 1
    	If $Run then
    		Consolewrite('Runs and wait ' & $time & 'ms.' & @CRLF); here would be your code
    	Else
    		Consolewrite('Does not run but wait ' & $time & 'ms.' & @CRLF); Just for showing that the script is paused
    	EndIf
    	sleep($time)
    WEnd
    
    Func _Start()
    	$Run = True
    EndFunc
    
    Func _Pause()
    	$Run = False
    EndFunc
    
    Func _End()
    	Exit
    EndFunc
    Alles anzeigen

    Danke das hat jetzt für mich so sehr gut funktioniert!


    AutoIt
    #Persistent ; Keep the script running
    
    ; Set Variable on False so that the script will not start by itself
    $Run = False
    
    ; Set a Hotkey for starting changing the Dashboard
    HotKeySet("{F10}", "_start")
    
    ; Set a Hotkey for stopping changing the Dashboard
    HotKeySet("{F9}", "_pause") 
    
    While True
        If $Run Then 
    			; Coordinates to Estate
    			$x5 = 550
    			$y5 = 125
    		
    			; Move the mouse to the Coordinates
    			MouseMove($x5,$y5) 
    			
    			; Pause just before clicking
    			Sleep(150) 
    			
    			; Execute left Click
    			MouseClick("left") 
    			
    			; Coordinates to Backups
    			$x6 = 550
    			$y6 = 170
    			
    			; Move the mouse to the Coordinates
    			MouseMove($x6,$y6) 
    			
    			; Pause just before clicking
    			Sleep(150) 
    			
    			; Execute left Click
    			MouseClick("left") 
    			
    			; Pause for 2 Minutes for changing the Dashboard
    			Sleep(1200)
    			
    			; Coordinates to Reports
    			$x7 = 460
    			$y7 = 125
    			
    			; Move the mouse to the Coordinates
    			MouseMove($x7,$y7) 
    			
    			; Pause just before clicking
    			Sleep(250) 
    			
    			; Execute let Click
    			MouseClick("left")
    			
    			; Coordinates to dropdown
    			$x8 = 45
    			$y8 = 185
    			
    			; Move the mouse to the Coordinates
    			MouseMove($x8,$y8)
    			
    			; Execute left Click
    			MouseClick("left")
    			
    			; Coordinates to overview in the dropdown menu
    			$x9 = 45
    			$y9 = 420
    			
    			; Move the mouse to the Coordinates 
    			MouseMove($x9,$y9)
    			
    			; Pause just before Clicking
    			Sleep(150)
    			
    			; Execute the left Click
    			MouseClick("left") 
    			
    			; Pause for 2 Minutes 
    			Sleep(1200) 
    			
    			; Show lower part of the Website
    			MouseWheel("down", 10)
    			
    			; Pause for 2 Minutes
    			Sleep(1200)
    			
    			; Go to the top part of the Website
    			MouseWheel("up", 20) 
    			
    			; Coordinates to overview
    			$x10 = 210
    			$y10 = 125
    			
    			; Move the mouse to the Coordinates
    			MouseMove($x10, $y10) 
    			
    			; Pause just before clicking
    			MouseClick("left") 
    			
    			; Pause for 2 Minutes
    			Sleep(1200) 
    		Else
    			
    	EndIf
    WEnd
        Sleep(100)
    	
    
    
    
    Func _start()
    
        $Run = True
    EndFunc
    
    func _pause()
    
        $Run = False
    EndFunc
    Alles anzeigen
  • Skript mit F10 starten und mit F9 beenden

    • DivineFaith
    • 14. Februar 2024 um 08:02
    Zitat von Moombas

    WhiteHorse : Ich glaube das er kein Exit haben will, sondern das Skript im Hintergrund (ohne Aktivität) weiterläuft.

    ja das wäre ideal

  • Skript mit F10 starten und mit F9 beenden

    • DivineFaith
    • 14. Februar 2024 um 08:01
    Zitat von Schnuffel

    nun ja. nach F10 ist halt schluss, wenn du das script beendest.😉

    ich weiß nicht den Grund oder deine Zielsetzung, aber damit der Hotkey für Start funktioniert, muss dein script laufen

    ja das problem ist mir auch erst jetzt klar geworden. Es gibt nicht zufällig einen Befehl der das Skript nur pausiert und nicht gleich beendet?

  • Skript mit F10 starten und mit F9 beenden

    • DivineFaith
    • 14. Februar 2024 um 07:37
    Zitat von Moombas

    Punkt 1: Dein Skript wie du es hier gepostet hast ist unvollständig, wir müssen schon eine funktionierende Variante hier haben. (kein Wend, kein EndFunc, kein Endif,...).

    Punkt 2: Ich empfehle anstatt der MouseMove geschichten hier auf evtl. eine direkte Webseitensteuerung zu gehen. Oder wird die Webseite nicht in einem Browser angezeigt?

    Zu punkt 1: Oh stimmt du hast recht, hab ich wohl irgendwie vergessen

    punkt 2: ja genau die Website wird über den Browser angezeigt. Wie funktioniert denn eine solche Webseitensteuerung?

  • Skript mit F10 starten und mit F9 beenden

    • DivineFaith
    • 12. Februar 2024 um 14:33

    Moin,

    ich habe einen Bildschirm, auf welchem ein PC im Kiosk modus hängt und dieser eine Monitoring website anzeigt. Diese Website hat mehrere Dashboards, welche ich mit einem ganz einfachem Autoit Skript, mit hilfe von einfachen MouseMove und MouseClick befehlen durchschalte. Dies funktioniert auch ohne Probleme.

    Zur Info das Skript wird immer automatisch über die Windows Aufgaben Planung gestartet, sobald der pc hochfährt und sich der Kiosk User anmeldet.

    Nun zu meinem Problem: Ich würde gerne das Skript mit der F9 Taste beenden können und mit der F10 Taste daraufhin wieder starten können. Nur irgendwie funktioniert das leider nicht so wie ich mir das vorgestellt habe.

    AutoIt
    #Persistent ; Keep the script running
    
    ; Set Variable on False so that the script will not start by itself
    $F10 = False
    
    ; Set a Hotkey for starting changing the Dashboard
    HotKeySet("{F10}", "_start")
    
    ; Set a Hotkey for stopping changing the Dashboard
    HotKeySet("{F9}", "_stop") 
    
    While True
    
    	 ; Check if F10 was pressed to start the loop
        If $F10 = True
    		
    		Then 
    			; Coordinates to Estate
    			$x5 = 550
    			$y5 = 125
    		
    			; Move the mouse to the Coordinates
    			MouseMove($x5,$y5) 
    			
    			; Pause just before clicking
    			Sleep(150) 
    			
    			; Execute left Click
    			MouseClick("left") 
    			
    			; Coordinates to Backups
    			$x6 = 550
    			$y6 = 170
    			
    			; Move the mouse to the Coordinates
    			MouseMove($x6,$y6) 
    			
    			; Pause just before clicking
    			Sleep(150) 
    			
    			; Execute left Click
    			MouseClick("left") 
    			
    			; Pause for 2 Minutes for changing the Dashboard
    			Sleep(120000)
    			
    			; Coordinates to Reports
    			$x7 = 460
    			$y7 = 125
    			
    			; Move the mouse to the Coordinates
    			MouseMove($x7,$y7) 
    			
    			; Pause just before clicking
    			Sleep(250) 
    			
    			; Execute let Click
    			MouseClick("left")
    			
    			; Coordinates to dropdown
    			$x8 = 45
    			$y8 = 185
    			
    			; Move the mouse to the Coordinates
    			MouseMove($x8,$y8)
    			
    			; Execute left Click
    			MouseClick("left")
    			
    			; Coordinates to overview in the dropdown menu
    			$x9 = 45
    			$y9 = 420
    			
    			; Move the mouse to the Coordinates 
    			MouseMove($x9,$y9)
    			
    			; Pause just before Clicking
    			Sleep(150)
    			
    			; Execute the left Click
    			MouseClick("left") 
    			
    			; Pause for 2 Minutes 
    			Sleep(120000) 
    			
    			; Show lower part of the Website
    			MouseWheel("down", 10)
    			
    			; Pause for 2 Minutes
    			Sleep(120000)
    			
    			; Go to the top part of the Website
    			MouseWheel("up", 20) 
    			
    			; Coordinates to overview
    			$x10 = 210
    			$y10 = 125
    			
    			; Move the mouse to the Coordinates
    			MouseMove($x10, $y10) 
    			
    			; Pause just before clicking
    			MouseClick("left") 
    			
    			; Pause for 2 Minutes
    			Sleep(120000) 
    		
        Sleep(100)
    
    
    _start()
    
        $F10 = True
    
    
    _stop()
    
        $F10 = False
    Alles anzeigen

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™