Auf GUI Buttons aller Art klicken (.net)

  • Habe hier eine glaube mit .net erstellte GUI, auf der ich diverse Knöpfchen dücken will.
    Nun über die Koordinaten kann/will ich nicht gehen. (da sind sie ja ned immer gleich)
    Dachte da jetzt an die Beschriftung. Hab mit dem AutoIt Info Window herum gesucht ...
    Hab hier mal die Info von 2 Buttons gekürzt:


    Habe da zB.: Handle, ExStyle, Style, ControlClick Coords, Size, Position;
    rausgekürzt da immer anders oder mit anderen Buttons gleich.
    Wobei ID natürlich auch ned immer gleich ist, bei Instance bin ich mir nicht sicher.

    Gibt es dennoch ne Möglichkeit den Button zu finden und in Klicken zu lassen ?

    Kenn mich in AutoIt nicht so aus. welche funktion(en) man sich da bedienen muss.
    Wie finde ich/drücke ich diesen Button.

    • Offizieller Beitrag

    Du hast doch die Buttonclass und die Instance. Damit solltest du doch mit ControlClick arbeiten können.

    [autoit]

    ControlClick("[Class:WindowsForms10.Window.8.app.0.2e0c681]", "", "WindowsForms10.BUTTON.app.0.2e0c6812")
    ControlClick("[Class:WindowsForms10.Window.8.app.0.2e0c681]", "", "WindowsForms10.BUTTON.app.0.2e0c68121")

    [/autoit]


    oder

    [autoit]

    ControlClick("Dingens", "", "WindowsForms10.BUTTON.app.0.2e0c6812")
    ControlClick("Dingens", "", "WindowsForms10.BUTTON.app.0.2e0c68121")

    [/autoit]
  • Wenn sich die ID und die Instanznummer ändern, dann kannst du immer noch über Position und/oder Größe des Controls einen Controlclick ausführen.
    Irgendetwas muss ja gleich bleiben.

    [autoit]


    ControlClick("Dingens", "", "[CLASS:WindowsForms10.BUTTON.app.0.2e0c681; X:11; Y:11; W:528; H:20]")

    [/autoit]
  • funkey

    Zitat

    Wenn sich die ID und die Instanznummer ändern, dann kannst du immer noch über Position


    wenn es mal so wäre, in VB6 werden bei uns die Controlls von der IDE verwaltet und die IDs hochgezählt,
    hochgezählt wenn zum Beispiel etwas zusätzlich eingefügt wird, nicht unten angefügt sondern dazwischengebastelt. X(

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Wenn sich die ID und die Instanznummer ändern, dann kannst du immer noch über Position und/oder Größe des Controls einen Controlclick ausführen.
    Irgendetwas muss ja gleich bleiben.

    naja eben nicht, wer sagt den das da was gleich bleiben muss?
    Größe/Position sind schon mal von der Auflösung abhängig.
    ID und Instance auch beim Start so wies aussieht.
    Hoffe die Class bleibt beim nächsten releas wenigstens gleich


    [autoit]


    ControlClick("[Class:WindowsForms10.Window.8.app.0.2e0c681]", "", "WindowsForms10.BUTTON.app.0.2e0c6812")
    ControlClick("Dingens", "", "WindowsForms10.BUTTON.app.0.2e0c6812")

    [/autoit]


    Das scheint mal zu funktionieren. Muss ich noch testen ob das durchgängig klappt bei mir. DANKE.

    Aber schöner wäre es wenn man dieses ClassNN irgendwie aus diesen:

    Code
    Name:	btnLogon
    Advanced (Class):	[NAME:btnLogon]


    Heraus bekommen könnte.
    wenn ich da versuche in der online hilfe zu suchen ob/wie das geht,
    dann drehe ich mich da immer nur im kreis ... :(