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

Beiträge von Muecke_1982

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

    • Muecke_1982
    • 23. Dezember 2024 um 19:49
    Zitat von Kanashius

    Ich hab es so verstanden, dass die "Speichern" Funktion in seinem eigenen Programm angestoßen werden soll und nicht die in dem automatisierten Fenster.

    Öhm, ja genau, sorry! In meinem kleinen Programm heißt die Funktion nicht "Speichern", sondern "Sichern". Das hat wahrscheinlich für Verwirrung gesorgt.

    Es ist korrekt, ich möchte meine eigene Funktion "Sichern" bzw. "Speichern" ausführen, nicht eine aus einem anderen Programm.

    Ich habe gerade den Code von Kanashius getestet, so wie Du es beschrieben hast, und das hat problemlos funktioniert! Ich habe es in Excel ausprobiert (zum Testen, da Excel ein anderes Programm ist), und wenn ich STRG+ALT+y drücke, erscheint die MSGBox. Das werde ich morgen direkt in mein Programm einbauen.

    DANKE!!! Jetzt kann ich nach Weihnachten weiter testen.

    Ich habe bisher über 400 Tests durchgeführt, und dabei konnte ich bei jedem Test über 1,5 Minuten sparen. Aktuell schaue ich auf eine richtig gute Bilanz zurück. DANKE für Eure Unterstützung!

    Ich wünsche Euch allen frohe Feiertage und eine entspannte Zeit mit Euren Liebsten! 🎄✨

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

    • Muecke_1982
    • 22. Dezember 2024 um 21:49

    Hey zusammen,

    ich habe eine Frage: Kann man eine Tastenkombination in ein Programm einbauen, die auch funktioniert, wenn das Programm nicht aktiv ist?

    Mein Problem ist, dass mein Programm Tasteneingaben ausführt, während das Herstellerprogramm aktiv ist. Wenn ich dann auf "Speichern" klicken möchte, muss ich mit der Maus über den gesamten Bildschirm fahren, um in meinem Programm den entsprechenden Button zu drücken. Dabei habe ich immer die Sorge, dass ich mit der Maus unabsichtlich etwas verstelle und dadurch meinen programmierten Ablauf durcheinanderbringe.

    Es wäre super, wenn ich eine globale Tastenkombination wie z. B. "STRG+ALT+Y" nutzen könnte, mit der mein Programm dann die "Speichern"-Funktion ausführt, ohne dass ich das Fenster erst aktivieren muss.

    Hat jemand von Euch eine Idee, wie man das umsetzen könnte?

    Gruß
    Mücke

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

    • Muecke_1982
    • 8. Dezember 2024 um 14:13

    Ich möchte mich ganz herzlich bei euch bedanken für die großartige Unterstützung, die ich bei meinem Projekt erhalten habe. Anfangs dachte ich, dass es viel einfacher sein würde, und hatte ehrlich gesagt nicht wirklich daran geglaubt, Hilfe zu bekommen. Umso mehr weiß ich eure Unterstützung zu schätzen. DANKE dafür!


    Das Script von Schnuffel funktioniert sehr gut, egal wo das Programm auf dem Monitor geöffnet ist. Leider bekomme ich aber immer wieder Fehler, die vermutlich mit der von euch erwähnten Fehlerbehandlung zusammenhängen.


    Deshalb habe ich mich daran gemacht, die Abläufe per Mausklick zu realisieren. Mit der Hilfe von GPT habe ich etwas hinbekommen, das für meine Zwecke ausreichend ist und kaum Fehler produziert – solange die Umgebung unverändert bleibt.

    Mein Werk, das ich größtenteils mit GPT zusammengestellt habe, habe ich im Anhang beigefügt. Vielleicht hat jemand Lust, drüberzuschauen. Große Änderungen werde ich allerdings nicht mehr vornehmen, da nächste Woche die Tests beginnen und damit das "Spielen" ein Ende hat. 😉


    Hier ist meine GUI, mit der ich den Ablauf steuere:


    VG Mücke

    Dateien

    Ropex-Automatisirt.zip 5,74 kB – 69 Downloads
  • Hilfe bei der Automatisierung: Wie greife ich auf Felder in einer Herstellersoftware zu?

    • Muecke_1982
    • 6. Dezember 2024 um 21:13
    Zitat von Schnuffel

    mir war nicht bewusst, dass du noch ein "Neuling" in der Automatisierung bist.

    Ich bin nicht nur ein Anfänger, ich bin auch kein Programmierer, ich kann mir einfache Sachen anschauen und ich verstehe halbwegs, was passiert, und ich kann es oft anpassen, aber das ist alles.

    Ich bezweifle auch, dass ich jemals ein Programmierer sein werde.

    Zitat von Schnuffel

    Du hast dir da schon eine Herausforderung gesucht, an der ich als Neuling sicherlich verzweifelt wäre.

    Ja, das geht mir auch so.

    Ich habe mir das ausgesucht, weil der Zeitaufwand bei meinen Tests im Ablauf wirklich sehr hoch ist und ich finde, man muss verdammt oft mit der Maus irgendwohin klicken.

    Es ist eigentlich auch sehr ungewöhnlich, dass man so eine große Testreihe mit so einem Gerät macht, aber ich möchte das Gerät zweckentfremden und mir kann niemand sagen, wie es mit meiner Hardware auf welche Parameter reagieren wird, deshalb sind die Tests für die Auswertung wichtig.

    Ich habe mit den ersten Tests begonnen und dann relativ schnell gemerkt, dass ich auch im Ablauf durcheinander gekommen bin und nicht mehr genau wusste, wo ich bin, was dann auch wieder extrem zeitintensiv war, wie sich herausgestellt hat.

    Also hab ich im Internet geschaut wie man Klicks automatisieren kann und da bin ich dann auf AutoIT gestoßen und das was ich gelesen habe (eher Werbung) hat sich so angehört als könnte das mein 6 jähriger Sohn auch schon, aber dem ist leider gar nicht so, musste ich feststellen.

    Zitat von Schnuffel

    Wenn sich hier nicht jemand findet, der dir das Thema in einem Workshop aufarbeitet, wrden 2 Std. nicht reichen um den Code zu verstehen.

    Das war auch ehrlich gesagt gar nicht meine Absicht, dass man mir das alles macht und ich bin ein bisschen überwältigt und überwältigt von deinem Engagement, denn das was du da bisher gemacht hast ist der Hammer und viel mehr als ich jemals gedacht hätte!!!

    Und wenn es nicht klappen sollte, dann habe ich auch so etwas wie ein schlechtes Gewissen, denn du hast wirklich viel Arbeit und Mühe da reingesteckt.

    DANKE DAFÜR !!!


    Okay, ich glaube, ich habe das mit dem Baum verstanden, und der Baumstumpf ist dann das Programm selbst, und jeder Ast ist ein neues Fenster mit neuen Verzweigungen.

    Zitat von Schnuffel

    Da die Ansteuerung an sich "0" Errorhandling beinhaltet, muss jede Aktion selber abgefangen werden.
    Bequeme Funktionen die einem das abnehmen habe ich bisher nicht gefunden. Ich war schon drauf und dran diese selbst zu schreiben, aber das würde bei mir recht lange dauern. Und da ich mit UI nur gelegentlich zu tun habe, möchte ich mir das nicht antun.

    Meinetwegen musst du das nicht machen!!!

    Ich hoffe, dass ich eine lauffähige Version bekomme, mit der ich meine Tests machen kann, es ist ja nicht so, dass ich das irgendwo als Zusatzsoftware anbieten will!

    Zitat von SOLVE-SMART

    Vielleicht reicht ihm am Ende ja doch ein "relativ" robustes Maus-Klicken und fertig 🤔 .

    Das habe ich mir auch schon überlegt und heute auf der Arbeit habe ich GPT gebeten, mir einen Mausklick-Reckorder zu schreiben, der mir alle Klicks auf dem Monitor aufzeichnet und in eine Neue AutoIT Datei schreibt.

    Aber bei dem Aufwand, den Schnuffel uffel bisher betrieben hat, möchte ich seine Möglichkeit nicht ungetestet und probeweise stehen lassen, das fände ich nicht gut!

    Zitat von Schnuffel

    ich habe mal für das Clicken eine rudimentäre Funktion zusammengefasst.

    Wow, das ist der Hammer, das werde ich gleich mal ausprobieren und schauen, ob ich mich daran orientieren kann, um den Rest umzusetzen.
    DANKE!!!

    VG Mücke

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

    • Muecke_1982
    • 5. Dezember 2024 um 21:37

    So hatte ich es verstanden. Aber leider funktioniert das nicht.


    Habe den Code einfach unten dran gehängt:

    Code
    Global $LanguageTitle = WinGetTitle("Language selection",'')
    ; Find Main Language selection
    	$oUIAutomation.CreatePropertyCondition( $UIA_NamePropertyId, $LanguageTitle, $pCondition ) ; Window Title
    	$oDesktop.FindFirst($TreeScope_Descendants, $pCondition, $pROPEXe)
    	$oROPEXe_Language = ObjCreateInterface($pROPEXe, $sIID_IUIAutomationElement, $dtagIUIAutomationElement)
    
    	; Click button  Menübar => Settings 
    		$oUIAutomation.CreatePropertyCondition($UIA_ControlTypePropertyId, $UIA_ButtonControlTypeId, $pCondition1)	;  Klick Button $UIA_ControlTypePropertyId   $UIA_ButtonControlTypeId
    		$oUIAutomation.CreatePropertyCondition($UIA_NamePropertyId, "OK", $pCondition2)                                    	; Name des Klick-Buttons als 2. Condition     $UIA_NamePropertyId
    		$oUIAutomation.CreateAndCondition($pCondition1, $pCondition2, $pAndCondition)
    		$oROPEXe_Language.FindFirst($TreeScope_Descendants, $pAndCondition, $pKlickButton)
    		$oKlickButton = ObjCreateInterface($pKlickButton, $sIID_IUIAutomationElement, $dtagIUIAutomationElement)
    		$oKlickButton.GetCurrentPattern($UIA_ValuePatternId, $pValue)
    		WinActivate($LanguageTitle)
    		UIA_MouseClick($oKlickButton)
    Alles anzeigen
  • Hilfe bei der Automatisierung: Wie greife ich auf Felder in einer Herstellersoftware zu?

    • Muecke_1982
    • 5. Dezember 2024 um 21:17

    Schnuffel Zuerst einmal ist es mega, was du für mich getan hast. VIELEN DANK.

    Im Moment versuche ich herauszufinden, was in "ROPEX_Demo.au3" gemacht wird.

    Aber ich verstehe es nicht ganz :(

    Mit deinem Code wird das Fenster gefunden und das Menü kann bedient werden.
    Da sich ständig neue Fenster öffnen, muss ich dann das neue Fenster suchen.


    Fenster suchen und merken ist hier:

    Code
    ; Find Main Window
    $oUIAutomation.CreatePropertyCondition( $UIA_NamePropertyId, $ROPEXTitle, $pCondition ) ; Window Title
    $oDesktop.FindFirst($TreeScope_Descendants, $pCondition, $pROPEXe)
    $oROPEXe_Main = ObjCreateInterface($pROPEXe, $sIID_IUIAutomationElement, $dtagIUIAutomationElement)

    Dazu muss ich die $ROPEXTitle und die $oROPEXe_Main neu machen?

    Und das ist dann der Code zum Anklicken:

    Code
    ; Click butten   Menübar = Settings => Language
    $oUIAutomation.CreatePropertyCondition($UIA_ControlTypePropertyId, $UIA_ButtonControlTypeId, $pCondition1)	; Klick Button $UIA_ControlTypePropertyId   $UIA_ButtonControlTypeId
    $oUIAutomation.CreatePropertyCondition($UIA_NamePropertyId, "Language", $pCondition2)                              	; Name des Klick-Buttons als 2. Condition   $UIA_NamePropertyId
    $oUIAutomation.CreateAndCondition($pCondition1, $pCondition2, $pAndCondition)
    $oROPEXe_Main.FindFirst($TreeScope_Descendants, $pAndCondition, $pKlickButton)
    $oKlickButton = ObjCreateInterface($pKlickButton, $sIID_IUIAutomationElement, $dtagIUIAutomationElement)
    $oKlickButton.GetCurrentPattern($UIA_ValuePatternId, $pValue)
    WinActivate($ROPEXTitle)
    UIA_MouseClick($oKlickButton)

    Und hier muss ich die beiden Daten, die du schon in den Kommentaren hast, anpassen:

    Dazu muss ich dann das $oROPEXe_Main mit der neuen Fenstervariablen ersetzen, die ich oben gesucht habe. Und hier WinActivate($ROPEXTitle) kommt dann noch der Titel des Fensters hinzu.


    Wenn ich das bisher richtig verstanden habe, dann muss ich noch ein bisschen experimentieren, bis ich das alles hinbekomme. Aber dann weiß ich, dass ich auf dem richtigen Weg bin.
    Wie macht ihr das, dass ihr den Überblick behaltet, für mich sehen das fast immer alle gleich.

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

    • Muecke_1982
    • 5. Dezember 2024 um 19:48

    Wow, danke!

    Für mich ist das zum ersten Mal sehr viel und es wird eine Weile dauern, bis ich das alles verstanden habe.

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

    • Muecke_1982
    • 5. Dezember 2024 um 14:44

    Hallo SOLVE-SMART,

    ich habe alles einmal zusammengetragen und hoffe, dass ich keinen Schritt übersehen habe.

    Meine Testreihe 1 habe ich als CSV angehängt. Dort sind nur die Parameter enthalten, die eingetragen werden sollen. Diese Testreihe muss ich leider 2 bis 3 Mal durchlaufen. :( Dabei ändert sich allerdings zwischen den Testreihen nur die Hardware, nicht die Software. (die .txt ist eigendlich ein .csv Datei)

    Den Ablauf habe ich in einer PDF dokumentiert, die ebenfalls im Anhang ist.

    Die Schritte 1 und 2 müssen nur einmalig ausgeführt werden. Das kann ich auch zu Beginn manuell machen, wenn sichergestellt werden kann, dass das Fenster anschließend korrekt von der Software erkannt wird.

    Die Schritte 3 bis 6 sollten in einer Schleife so lange ausgeführt werden, bis keine Parameter mehr in der CSV-Datei vorhanden sind.

    Dateien

    Ablauf.pdf 806,56 kB – 82 Downloads Versuchs-Parameter.txt 15,3 kB – 72 Downloads
  • Hilfe bei der Automatisierung: Wie greife ich auf Felder in einer Herstellersoftware zu?

    • Muecke_1982
    • 5. Dezember 2024 um 12:34

    Hey SOLVE-SMART ,

    Oh, das würde ich gerne machen, mit Bildern kann ich das, ein Video, ich weiß nicht, wie ich meinen Bildschirm aufnehmen kann.

    Mit der Maus hab ich vorhin ein bisschen probiert.

    Das klappt mal und mal nicht, ab und zu ist beim Programmstart irgendwas nicht so, wie es sein soll, dann stimmt das Klicken nicht mehr :-(.

    Zum Testen habe ich einfach mal die Sprache umgestellt.

    Wenn das mit den UIA klappen würde und ich es kapiren würde, sagt mir mein Bauchgefühl das das Programm zuverläsiger sein word wie das Mausklicken.


    Den richtigen Ablauf würde ich dann in Bildern zusammenfassen, das hilft mir auch selbst zu sehen, was ich eigentlich wann machen muss / sollte.


    Das ist mein aktueller Code dazu:

    Code
    ; Include 
    	; MsgBox Fungzinen 
    	#include <MsgBoxConstants.au3>
    
    ; Skript starten
    
    	; Programm öffnen
    		Run("D:\Server\Ropex\ROPEXvisual 2.0 540000311\RopexVisualLaunch.exe")
    		Sleep(5000)
    
    	; Aktives Fenster von Ropex finden
    		Local $Fenster_aktiv = FindWindowByTitle("ROPEXvisual® V3.11 -")
    	
    	; Fenster Aktiv setzen
    		WinActivate($Fenster_aktiv)	
    		WinWaitActive($Fenster_aktiv, "", 10) 		; Warten, bis das Fenster aktiv ist
    
    	; Fenster positionieren
    		WinMove($Fenster_aktiv, "", 100, 100) 	; Verschiebt das Fenster oben links
    	
    	; Setzt die Maus-Koordinaten relativ zum Fenster
    		Opt("MouseCoordMode", 0) 					; 2 = Fenster-relative Koordinaten
    		
    	; Programm ins Vollbildmodus 
    		MouseMove(300, 15, 5) 							; Bewegt die Maus auf eine feste Position relativ zum Fenster
    		MouseClick("left", Default, Default, 2) 		; Doppelklick auf aktuellen Position 
    		Sleep(500)											; kurz warten 
    
    	; Menüband: Einstellungen / Sprache
    		MouseClick('left', 150,  50,  1,  5) 			; Settings 
    		MouseClick('left', 370,  80,  1,  5) 			; Sprache
    		MouseClick('left', 950, 500, 1,  5) 			; Dropdown  
    		MouseClick('left',   50,  80,  1,  5) 			; Deutsch  
    		MouseClick('left',   60, 155, 1,  50)			; OK 	
    	
    	
    	
    ; *************************************************************************************
    ; Funktion: 	FindWindowByTitle
    ; Beschreibung:	Diese Funktion durchsucht alle geöffneten Fenster nach einem Titel, der
    ; 			mit einem bestimmten Suchbegriff beginnt, und gibt den ersten passenden
    ; 			Fenstertitel zurück.
    ; Autor: 		ChatGPT (unterstützt von ...)
    ; Version: 		1.0
    ; Datum: 		05.12.2024
    ; *************************************************************************************
    
    Func FindWindowByTitle($searchTitle)
    ; Funktion: FindWindowByTitle
    ; Parameter:
    ;   $searchTitle (String): Der Suchbegriff, mit dem der Fenstertitel beginnen soll.
    ; Rückgabewert:
    ;   (String): Der Titel des ersten gefundenen Fensters, das mit dem Suchbegriff beginnt.
    ;             Gibt einen leeren String zurück, wenn kein Fenster gefunden wurde. 
    
    ; Variablen initialisieren
    	Local $windowTitle, $windowList, $foundTitle = ""
    
    ; Liste aller geöffneten Fenster abrufen
    	$windowList = WinList()
    
    ; Durch alle Fenster iterieren
    	For $i = 1 To $windowList[0][0] ; $windowList[0][0] enthält die Anzahl der Fenster
    	; Fenstertitel des aktuellen Fensters abrufen
    	$windowTitle = $windowList[$i][0]
            
    		; Prüfen, ob der Fenstertitel mit dem Suchbegriff beginnt
    		If StringLeft($windowTitle, StringLen($searchTitle)) = $searchTitle Then
    			; Wenn ein passendes Fenster gefunden wurde, speichern und Schleife beenden
    			$foundTitle = $windowTitle
    			ExitLoop
    		EndIf
    	Next
    
    ; Den Fenstertitel oder einen leeren String zurückgeben
    Return $foundTitle
    
    EndFunc
    Alles anzeigen

    Dateien

    Sprache.pdf 182,16 kB – 71 Downloads
  • Hilfe bei der Automatisierung: Wie greife ich auf Felder in einer Herstellersoftware zu?

    • Muecke_1982
    • 5. Dezember 2024 um 09:57
    Zitat von SOLVE-SMART

    Wir könnten es theoretisch nachstellen, doch wo bleibt dann der Lerneffekt 🤝 .

    Ja, da gebe ich dir Recht, der Lerneffekt ist nicht wirklich da.

    Im Moment habe ich den Lernefekt, ich bin kein Programmierer, und für mich ist das alles ein bisschen verwirrend, und ich bekomme es nicht zum Laufen, der Aufwand, den ich habe, um die Hilfen zu erstellen (zum Klicken und Eingeben), ist zu groß, also unterm Strich bin ich wahrscheinlich schneller und frustfreier am Ziel, wenn ich es lasse.

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

    • Muecke_1982
    • 4. Dezember 2024 um 19:50

    Also ich werde das mit den Koordinaten mal ausprobieren. wahrscheinlich erst am WE und hoffe, dass ich das hinbekomme.

    Die Software ist kostenlos wenn man Kunde ist.
    Und hier sind die Daten zu groß, dachte ich versuche es mal so: https://we.tl/t-TNEUnwunrh 


    Hoffe das klappt, die Software muss nicht installiert werden!

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

    • Muecke_1982
    • 2. Dezember 2024 um 19:58

    Hmm, das klingt interessant.
    Vielleicht sollte ich mir das mal genauer ansehen.
    Wie heißen die Befehle, damit ich das nachschlagen kann?
    Wie ist das, wenn ich das auf einem PC fertigstelle und dann auf einem anderen umsetzen will, ändern sich dann die Koordinaten?

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

    • Muecke_1982
    • 26. November 2024 um 19:07

    Dank GPT habe ich ein kleines Programm, mit dem ich mir alle geöffneten Fenster mit dem Suchbegriff "...." ausgeben lassen kann.

    Leider werden nicht alle Fenster ausgegeben, die ich auf dem Monitor sehe.

    Was mache ich falsch?

    Code:

    Code
    ; Alle Fenster auflisten
    Local $aWindows = WinList()
    
    ; Variable für die Ausgabe
    Local $sWindowList = "Offene ....-Fenster:" & @CRLF
    
    ; Fensterliste durchgehen und Titel prüfen
    For $i = 1 To $aWindows[0][0]
        ; Prüfen, ob der Fenstertitel "...." irgendwo im Titel enthalten ist (Groß- und Kleinschreibung wird ignoriert)
        If StringInStr(StringUpper($aWindows[$i][0]), "...") > 0 Then
            $sWindowList &= "Titel: " & $aWindows[$i][0] & " | Handle: " & $aWindows[$i][1] & @CRLF
        EndIf
    Next
    
    ; Überprüfen, ob Ergebnisse vorhanden sind
    If StringLen($sWindowList) > 0 Then
        ; Dateipfad des Skripts abrufen
        Local $sFilePath = @ScriptDir & "\...._Fenster_Liste.txt"
        
        ; Datei öffnen (wird erstellt, falls noch nicht vorhanden)
        Local $hFile = FileOpen($sFilePath, 2) ; 2 = "Write" (Schreiben)
    
        ; Inhalt in die Datei schreiben
        FileWrite($hFile, $sWindowList)
    
        ; Datei schließen
        FileClose($hFile)
    
        MsgBox(64, "Erfolg", "Die Fensterliste wurde in '" & $sFilePath & "' gespeichert.")
    Else
        MsgBox(16, "Fehler", "Keine Fenster mit '...' gefunden!")
    EndIf
    Alles anzeigen


    Ausgabe:

    Zitat

    Offene ....-Fenster:
    Titel:.....au3 - SciTE-Lite | Handle: 0x001307A6
    Titel: .... V3.11 - Controller | Handle: 0x0008064C
    Titel: GDI+ Window (.....exe) | Handle: 0x0005078C


    Offene Fenster.

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

    • Muecke_1982
    • 26. November 2024 um 18:23

    Ich habe es geschafft zu überprüfen, ob das Fenster existiert oder nicht.

    Jetzt habe ich festgestellt, dass je nachdem welches Fenster in der Herstellersoftware aktiv ist, mein Hauptfenster anders heißt :( und wenn das falsche Unterfenster aktiv ist, kann ich das Hauptfenster nicht mehr finden :-(.

    mein Code:

    Code
    ; Prüfen, ob das Fenster existiert
    If WinExists("[TITLE:.... V3.11 - Controller.Parameter.Konfiguration]") Then
        ; Fenster aktivieren
        WinActivate("[TITLE:.... V3.11 - Controller.Parameter.Konfiguration]")
    
        ; Eine kleine Pause, um sicherzustellen, dass das Fenster aktiv ist
        Sleep(500)
    
      Else
        ; Fenster nicht gefunden
        MsgBox(16, "Fehler", "Fenster nicht gefunden!")
    EndIf
    Alles anzeigen


    Auf welchen Wert muss ich bei "inspect.exe" achten, damit ich das Fenster trotzdem finde, egal was ich anklicke?

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

    • Muecke_1982
    • 26. November 2024 um 17:33
    Zitat von BananaJoe

    Statt UIA_Spy kannst Du auch alternativ Inspect von Microsoft verwenden (ich habe die Version 7.2.0.0 von 2012, das gibt Dir auch die Infos).

    Ok das mit dem UIA_Spy habe ich nicht hin bekommen. dafür habe ich mir das Inspect von Microsoft bzw. das Windows SDK Heruntergeladen und dann die Datei "Inspect.exe" auf meinem Rechner gesucht. das hat geklappt und das Program hat sich auch Starten lassen, das hat allerlei Infos für alle möglichen Fenster nun.


    Jetzt muss ich mir anschauen welche Infos ich benötige und was ich wo rein Schreiben muss (aufrufen muss) damit ich welchen Knopf gedrückt bekomme.

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

    • Muecke_1982
    • 26. November 2024 um 07:18
    Zitat von Texos

    Hier ein kleines Beispiel von mir. Du musst so gesehen hierarchisch dort von Anfang an dorthin navigieren, kannst dir aber bestimmte Bereiche als $Parent speichern um von dort in eine andere Richtung zu suchen. Sprich wenn du ein Tree-Item möchtest, musst du erst mal das 1. Fenster referenzieren vom Desktop oder der Anwendung an sich heraus. Dann das darin liegende Fenster in dem der Tree liegt und dann vom Tree aus in die Zeilen und dort dann erst das finale Item suchen. Du kannst auch direkt vom Parent bis zum Item in einer Build condition und search condition suchen, das verursacht aber unnötigen Headspace da er alles scannen muss weil er das was du willst im $Parent nicht kennt und er vom angegebenen Parent aus dann solange Childs untersucht bis er es hat. Daher lieber den richtigen Referer bereits lokalisieren und nutzen, sprich hierarchich dorthin navigieren, siehe Beispiel 2.

    Ok, ich glaube ich weis was du meinst, ... auch wenn es sich sehr Abstrakt für mich noch anhört.


    Zitat von Texos

    Das Program UIA_Spy hilft dir dabei fast alles auszulesen, es kann auch Code erstellen, finde ich aber nicht so effizient gestaltet.

    Das habe ich auch gelesen, aber ich habe das Programm UIA_Spy nicht zum Laufen bekommen :-(.
    Es war auch nicht im Download der Version 70 enthalten, und auf einer anderen Seite hatte ich was zum Download gesehen, aber da war so viel und ich habe gar nicht mehr verstanden, was ich machen soll. (Kurzum, ich glaube ich habe das Programm noch nicht auf dem Rechner, ich muss nochmal suchen).


    Zitat von Texos

    Sorry für die Unordnung, grade schnell alles hier zusammengefügt zum präsentieren. Vlt. verstehst du es so.

    Das muss ich mir heute Abend nach der Arbeit mal anschauen, bisher sieht das für mich alles wie Chinesisch aus.


    Spoiler anzeigen

    PS. Die Software des Herstellers ist "kostenlos", wenn man bei denen Kunde ist, wenn es jemand Langweisig ist und damit etwas spielen möchte, könnte ich sie zur Verfügung stellen ;)

    Vielen Dank für die Informationen, ich werde mir das heute Abend ansehen und es noch einmal versuchen.

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

    • Muecke_1982
    • 26. November 2024 um 07:11
    Zitat von water

    Hast Du das schon probiert, wie von Solve-Smart vorgeschlagen?
    Entweder sollten Buchstaben angezeigt werden (z.B. R unter dem Tab "Start" wie in Office). Dann sendest Du Alt R an die Anwendung. Oder Du bekommst den Buchstaben unterstrichen. Dann ebenfalls Alt R senden.

    Ja, habe ich, leider kommt nichts, habe auch einige Tastenkombinationen ausprobiert, um zu sehen, ob was geht, leider ohne Erfolg.

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

    • Muecke_1982
    • 25. November 2024 um 21:13

    Hallo alle zusammen,

    SOLVE-SMART Das mit den Tastenkombinationen war meine erste Idee, aber leider habe ich keine gefunden und auch im Handbuch nichts dazu :(

    BananaJoe & water Vielen Dank für den Tipp mit dem UI Automation Framework.

    Leider muss ich mir, glaube ich, eingestehen, dass ich es nicht verstehe, je mehr ich versucht habe, es zu verstehen, desto mehr verstehe ich es nicht, und ich habe kein Beispiel zum Laufen bekommen, ich weiß überhaupt nicht, wo der Anfang ist und was ich eigentlich richtig machen soll.

    Ich glaube nicht, dass ich mehr getan habe, als die Version V7.0 herunterzuladen und alles in den Include-Ordner zu kopieren (mit diesem Schritt glaube ich zumindest, dass ich es richtig gemacht habe).


    VG Mücke

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

    • Muecke_1982
    • 25. November 2024 um 17:52
    Zitat von BananaJoe

    Ich habe ziemlich viel mit UI-Automation gemacht - man muss sich aber erst reinarbeiten. Fang am besten hier mit dem Lesen an und folge dann den Links von LarsJ: https://www.autoitscript.com/forum/topic/20…utomation-udfs/

    Ich habe den Beitrag gelesen und verstehe die Installation nicht ganz.
    Da steht was von Ordnerstruktur, muss ich bestimmte Dateien in verschiedene Ordner verschieben?

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

    • Muecke_1982
    • 25. November 2024 um 17:48

    Ok, ich werde es versuchen, denn ich verstehe noch nicht viel.

    Ich habe mir die V70 runtergeladen und alles in den Include-Ordner gepackt, aber alle Beispiele, die ich ausführe, bringen immer nur einen Fehler :-(.

    Da muss ich noch ein bisschen arbeiten.

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™