Controlclick Problem

  • Hallo,

    ich habe mal wieder ein Problem mit Controlclick.

    folgendes: auf meinem Desktop ist ein Fenster mit mehreren Buttons.
    (Screenshot Canon)
    Ich habe zuerst mit Autoit-Info die Taten des Fensters ausgelesen
    und dann die Daten des Buttons.
    Leider funktioniert das Skript nicht.

    [autoit]


    WinActivate ("[Class:#32770]", "")
    ControlClick("[CLASS:Button]", "", "INSTANCE:9")

    [/autoit]


    Das sind die Daten des Fensters autoit.de/wcf/attachment/24205/

    Das sind die Daten des Buttons autoit.de/wcf/attachment/24206/


    Liebe Grüße

    Ilse

    • Bei Controlclick muss das Fenster nicht vorher aktiviert werden.
    • Dein Controlclick klickt auf einen Button, dessen Control-ID "INSTANCE:9" ist, und der in einem Fenster liegt, das als Fensterklasse die Klasse "Button" hat.
    • Als Control-ID hast du "INSTANCE:9" angeben. Man hat viele Möglichkeiten wie man mit dem Parameter Control-ID das entsprechende Control identifiziert: >>AutoIt Hilfe<<
      "INSTANCE:9" entspricht allerdings keiner der gültigen Formen.

    Einmal editiert, zuletzt von AspirinJunkie (4. Februar 2014 um 13:02)

  • hm...

    komme irgendwie nicht weiter.

    [autoit]


    WinActivate ("[Class:#32770]", "")
    Sleep(1000)
    ControlClick("[CLASS:Button; INSTANCE:9]", "", "")

    [/autoit]

    geht auch nicht.

    Also die Buttons werden in Autoit Info (Advanced Mode) alle nummeriert angezeigt

    [CLASS:Button; INSTANCE:9]
    [CLASS:Button; INSTANCE:10]
    [CLASS:Button; INSTANCE:11]

  • Hallo Oscar,

    merci für deine Hilfe.

    Leider auch nicht.

    Was mir aufgefallen ist:

    [autoit]


    WinActivate ("[Class:#32770]","")
    ControlClick("[Class:#32770]", "", "[CLASS:Button; INSTANCE:9]")

    [/autoit]

    Wenn ich das Fenster verdecke, und dann das Script starte
    sollte doch bei Aktivierung das Fenster oben sein.

    Das passiert nicht.

    Grüße
    Ilse

  • Fang doch mal ganz einfach an.

    Also als erstes minimierst du das Fenster manuell.

    Danach rufst du in Autoit nur den Befehlt

    [autoit]

    WinActivate ("[Class:#32770]")

    [/autoit]

    auf. Du brauchst die Felder die in der Hilfe als Optional gekennzeichnet sind auch nicht zwingend rein machen. Das dient der Übersichtlichkeit.

    Danach solltest du Schritt für Schritt machen.

    Probier den Controlclick mal so:

    [autoit]


    ControlClick( "[Class:#32770]", "Epp", "Button9")

    [/autoit]
  • Hallo AyKay,

    das habe ich alles bereits versucht!
    Geht nicht.
    Liegt das vielleicht an Win7 / 64 bit?

    [autoit]


    WinActivate ("[Class:#32770]")

    [/autoit]

    Fenster minimiert: nichts passiert!
    Fenster offen, mit anderem Fenster verdeckt: nichts passiert!

    [autoit]


    ControlClick( "[Class:#32770]", "Epp", "Button9"

    [/autoit]

    geht auch nicht!

    Mache ich das z.B. mit einem anderen Fenster (Calc)
    dann klappt das!

    [autoit]


    WinActivate ("[Class:CalcFrame]")

    [/autoit]

    Einmal editiert, zuletzt von Ilse (4. Februar 2014 um 16:18)

  • wenn du win7 hast könnte es sein dass du für manche Prgramme adminrechte brauchst.
    schreib ma ganz oben hin

    Zitat

    #RequireAdmin

    aber grundlegend is dein problem, dass du ControlClick("title","text",controlID) brauchst und du den title nich kennst, controlID könntest du noch mit mauskoordinaten umgehen, aber ohne titel findet ers halt nich, das kannste nur über die ID des fensters umgehen.
    zb ControlClick($hwnd, "", controlID) und dieses $hwnd muss halt auf den Prozess des fensters zugreifen oder was vergleichbares

    Einmal editiert, zuletzt von nemi (4. Februar 2014 um 16:41)

  • Hallo,

    hat leider auch nichts gebracht.

    ABER:

    Ich habe einfach mal das probiert:

    [autoit]


    WinActivate ("Canon","")

    [/autoit]


    dann kann ich das Fenster aktivieren.

    [autoit]


    ControlClick("Canon", "", "[CLASS:Button; INSTANCE:9]")

    [/autoit]

    Controlclick in dieser Variante geht auch nicht!

  • Hallo nemi,

    leider nicht...

    Ich habe die Daten mit
    ControlClick Coords: 26, 25 mit Autoit Info gelesen.

    Also

    [autoit]


    WinActivate ("Canon","")
    ControlClick("Canon", "", "", "left", 1,26,25)

    [/autoit]

    es wird einfach kein Click ausgeführt.
    Das Fenster kommt nach vorne, und dann passiert nichts.

  • wenn du das canon programm offen hast, ist es in der taskleiste? wenn ja, welcher titel wird angezeigt, wenn du mit der maus drüber gehst?
    denn ich sehe immer noch den titel als problem an. wundert mich zwar wieso er dann das fenster in den vordergrund holt, ABER das wäre sowieso nicht nötig beim controlclick, da er nicht ins aktive fenster klickt sondern in ein fenster, das man vorher definiert (eben über den titel).

  • ControlClick("Canon MP Navigator EX - MX870 series", "", "", "left", 1, (53+85), (176+47))
    bzw
    ControlClick("Canon MP Navigator EX - MX870 series", "", "", "left", 1, 138, 223)

    wenn das nich geht weiß ich leider auch nich weiter

  • Hallo Nemi,

    geht beides nicht.

    Das Fenster wird nicht aktiviert.

    Wenn ich WinActivate vorher aufrufe wird das Fenster aktiv.

    Auch das funktioniert nicht

    [autoit]


    ControlClick("[Class:Canon MP Navigator EX - MX870 series]", "", "", "left", 1, 138, 223)

    [/autoit]

    merci für deine Mühe

    :( Ilse

  • naja das fenster muss auch nicht aktiviert werden, außer du möchtest das, aber dann ist der controlclick unnötig, dann reicht der normale.
    und das mit "Class" hat da auch nichts zu suchen, weil er ja auf den Fensternamen zugreifen will.

    verstehe aber auch nicht wieso er es nicht macht, tut mir leid

  • Hast du auch mal

    [autoit]


    ControlClick( "Canon", "Epp", "Button9")

    [/autoit]

    probiert?

    Hier ein Beispiel für dein zweites Fenster:

    [autoit]


    ControlClick("Canon MP Navigator EX - MX870 series", "", "ctiCommandButton15")

    [/autoit]