Button in Fremdanwendung überwachen

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    Button in Fremdanwendung überwachen

    Hallo,

    hat jemand einen eleganten Lösungsweg dafür, einen Button aus einer Fremdanwendung zu überwachen?

    Es handelt sich um eine einfache Form, auf der mehrere Sachen angeklickt werden können. Zum Schluss drückt der Benutzer auf speichern oder eben bei Fehleingaben auf Abbrechen oder Verwerfen. Ich möchte, wenn speichern geklickt wird eine Datei erstellen.

    Ein Bekannter schlug vor nach der Buttonfarbe zu suchen, den Bereich zu überwachen und bei Mausklick die gewünschte Funktion auszuführen. Problem ist, dass Abbrechen und Verwerfen die gleiche Farbe haben. Es ist auch so, dass der Button nicht zwangsweise an der selben Stelle ist.

    Hat jemand von euch eine Idee?

    Murdersquad schrieb:

    eine Idee
    Such dir den Button mittels UI Automation und abonniere in deinem Programm einen EventHandler seines Click-Event.
    Literatur:
    docs.microsoft.com/de-de/dotne…e-to-ui-automation-events
    docs.microsoft.com/de-de/dotne…ntrol-using-ui-automation
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Ich habe mir heute nochmal die zu überwachende Anwendung angeschaut. Es ist eine Art Designer, bei der der Ersteller des Designs letztlich die Position festlegt. Da ich die Software nicht kenne prüft gerade jemand anders, ob die Button-Position immer gleich gesetzt werden kann.

    UI-Automation kenne ich noch gar nicht. Es scheint ja letztlich der richtige Weg zu sein, aber gibt es dafür auch Beispiele im VB.NET? Ich finde alles nur in C#, auch bei Google bisher...

    Edit: Kann es sein, dass ich mit UI-Automation lediglich den Klick automatisieren kann, jedoch nicht sehe, ob geklickt wurde?
    Ich habe mittlerweile ein paar Sachen gelesen und weiß jetzt nicht, ob ich gänzlich falsch an die Sache heran gehe oder nicht.

    Aktuell habe ich mit Spy++ den Button einer Testanwendung identifiziert, der Button hat den Klassenname "WindowsForms10.BUTTON.app.0.141b42a_r14_ad1".
    Nun wollte ich diesen Button ansteuern, aber ich weiß nicht, wie man den Button beispielsweise im UI Automation referenziert.

    Oder kann es sein, dass mein Ansatz komplett falsch ist?
    Dann bin ich mal so dreist: Schau mal bei Programme auslesen und manipulieren rein, da solltest Du fündig werden. Den Klassennamen kannst Du hernehmen, um alle Buttons in Deiner Ziel-App zu finden, musst dann aber am besten über die NameProperty Deinen Button rausfischen.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.