Controlclick im Kontexmenü?

  • Servus,

    gibt es eine möglichkeit den controlclick für das kontexmenü anzuwenden ?

    Ich habs versucht, jedoch gibt mir das Autoit Window Info keine informationen für das Kontexmenü.

    Was ist die Alternative? Ich will kein Mousemove oder Tastaturschläge im script :)

  • Wenn du sehr viel Glück hast, dann ist das Kontextmenü mit der folgenden Funktion kompatibel:

    [autoit]

    WinMenuSelectItem ( "title", "text", "item" [, "item" [, "item" [, "item" [, "item" [, "item" [, "item"]]]]]] )

    [/autoit]


    Bei Notepad hat es NICHT funktionert (Vista32bit), nochnichtmal mit controlsend war es mir möglich die Hotkeys auszuführen! :(
    (Wäre auch interessiert daran, ob es eine Möglichkeit gibt,dass man die Menüitems auswählen kann)

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • Danke für deine Hilfe ;)

    Jedoch Frage ich mich jetzt was ich bei "Titel" und "Text" rein schreiben soll... solche Informationen gibt es für das Kontexmenü nicht :(

  • Lol natürlich musst du da trozdem den Titel des Fenstern eintragen, indem das Kontextmenü auftaucht ^^

    vllt wäre das nochwas für dich, damit kann man eventuell clicke simulieren also auch diese des Kontextmeüs

    GUICtrlSendMsg ( controlID, msg , wParam, lParam )

    Das finden von Rechtschreibfehlern muss sofort und unverzüglich dem Autor gemeldet werden. Das eigennützige Verwenden dieser Rechtschreibfehler ist strengstens untersagt und kann mit Freiheitsenzug bestraft werden.

    Einmal editiert, zuletzt von Darter (26. März 2010 um 10:57)

  • hmm.... benutze ich jetzt ein falschen begriff oder habt ihr mich falsch verstanden ? :D

    Wenn man jetzt aufem destop rechtsklick macht öffnet sich das kontexmenü.... was ist denn da der titel ? ?(

  • Ja du hättest schon betonen können, dass du kein Kontextmenüs eines Fensters meinst sondern des Desktops.

    Da weiß ich leider auch nicht weiter

    Das finden von Rechtschreibfehlern muss sofort und unverzüglich dem Autor gemeldet werden. Das eigennützige Verwenden dieser Rechtschreibfehler ist strengstens untersagt und kann mit Freiheitsenzug bestraft werden.

  • Ja du hättest schon betonen können, dass du kein Kontextmenüs eines Fensters meinst sondern des Desktops.

    Da weiß ich leider auch nicht weiter

    Das mit dem Destop war nur ein Beispiel...

    Ich meine das kontexmenü in einem programm wenn man dort ein rechtklick macht.

  • Bei Vista(32bit) heisst der Titel: "Program Manager"
    Du kannst den Titel herausfinden indem du "AutoIt Window Info" startetst,
    alle Fenster minimierst und anschließend das "Finder Tool" (kleine Zielscheibe) auf
    den Desktophintergrund ziehst. Dann steht bei "Title" der Titel (wer hätte es gedacht? ;) ).

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • Jop. Hier mal ein ausschnitt was mir das Window info zuschmeißt:

    Title: Program Manager
    Class: Progman
    Position: 0, 0
    Size: 1680, 1050
    Style: 0x96000000
    ExStyle: 0x00000080
    Handle: 0x0000000000010104

    bekommst doch alles was du brauchst, deshalb kann ich dein Problem nicht ganz nachvollziehen

    EDit:

    Ich würde ganz einfach ControlClick ( "title", "text", controlID [, button [, clicks [, x [, y ]]]] ) benutzen.

    Jedes Control also auch Items eines Kontextmeüs

    und hierzu auch mal ein auszug aus der Hilfe, da du ja warscheinlich sehr schlecht an die Cobtrol ID ran kommen wirst.

    Immer wenn eine Control...()-Funktion eine ControlID als Parameter erwartet (das sind die meisten), kann eine der folgenden Methoden angewendet werden. Die Methode, die gewählt wird, hängt von den persönlichen Vorlieben und den Ergebnissen der Anwendung des AutoIt-Window-Info-Tools ab. Im Allgemeinen ist die beste Methode die Verwendung der Control-ID, während die anderen Methoden verwendet werden, falls die ControlID nicht verfügbar oder nicht nur einmal vorhanden ist. Oft hat bei statischen Textcontrols jeder Teil die gleiche ControlID, sodass andere Verfahren nötig werden.


    Control-ID - Die Control-ID ist die interne Identifizierungsnummer, die das Fenster jedem Control zuweist. Es ist im Allgemeinen die beste Methode, Controls sicher zu identifizieren. Zusätzlich zum AutoIt-Window-Info-Tool können z.B. auch Screenreader für die blinden und von Microsoft stammenden Tools/APIs die ControlIDs auslesen.
    TEXT - AU3Info zeigt den Text an, den es aus einem Control liest. Für einen Button mit der Beschriftung Weiter, heißt es &Weiter - das & bedeutet dabei, dass der darauf folgende Buchstabe unterstrichen wird (Shortcut Alt + Buchstabe zum Auswählen). Dieser Text kann anstelle des "ClassNameNN" verwendet werden, um das Control zu identifizieren, wenn das erwünscht ist - aber mehrere Controls mit gleichem Text führen dann zu Problemen.
    CLASS - Interner Control-Klassenname (Classname), z.B. "Edit" oder "Button"
    CLASSNN - Der ClassNameNN-Wert, wie er in früheren AutoIt-Versionen Verwendung fand, z.B. "Edit1".

    Das finden von Rechtschreibfehlern muss sofort und unverzüglich dem Autor gemeldet werden. Das eigennützige Verwenden dieser Rechtschreibfehler ist strengstens untersagt und kann mit Freiheitsenzug bestraft werden.

    Einmal editiert, zuletzt von Darter (26. März 2010 um 11:19)

  • und du bist ganz sicher mit dem Finder Tool in das Kontextmenü gefahren? Funktioniert bei mir nicht!.

    Machs einfach so wie ich es oben beschrieben hab.

    Anhand des Fenstertitel, den du definitiv immer herausbekommst.
    Und dann brauchst du eben noch die Control ID oder eben anhand des Textes.
    Und eben dann mit Controlclick

    lg

    Das finden von Rechtschreibfehlern muss sofort und unverzüglich dem Autor gemeldet werden. Das eigennützige Verwenden dieser Rechtschreibfehler ist strengstens untersagt und kann mit Freiheitsenzug bestraft werden.

  • und du bist ganz sicher mit dem Finder Tool in das Kontextmenü gefahren? Funktioniert bei mir nicht!.

    Machs einfach so wie ich es oben beschrieben hab.

    Anhand des Fenstertitel, den du definitiv immer herausbekommst.
    Und dann brauchst du eben noch die Control ID oder eben anhand des Textes.
    Und eben dann mit Controlclick

    lg


    Das Problem ist, ich komme mit dem Finder Tool nicht in das kontexmenü... wen ich den Courser vom Finder Tool anklicke, verschwindet das Kontexmenü...

    Ich versuche es mal mit der Control ID, wie du es erklärt hast ;)