WinMenuSelectItem

Ruft einen Menüpunkt in der Menüleiste eines bestimmten Fensters auf.

WinMenuSelectItem, Fenstertitel, Fenstertext, Menü , Untermenü1, Untermenü2, Untermenü3, Untermenü4, Untermenü5, Untermenü6, Titelausnahme, Textausnahme

Parameter

Fenstertitel

Der Titel oder andere Möglichkeiten zum Identifizieren des Zielfensters. Weitere Informationen finden Sie unter Fenstertitel-Parameter.

Fenstertext

Eine Zeichenkette, die in einem der Textelemente des Zielfensters enthalten ist (eventuell vorhandene Textelemente können mit dem internen Tool Window Spy aufgedeckt werden). Versteckte Textelemente werden nur erkannt, wenn DetectHiddenText eingeschaltet ist.

Menü

Name des auf oberster Ebene befindlichen Menüpunkts, z. B. Datei, Bearbeiten, Ansicht. Es kann auch die Position des gewünschten Menüpunkts sein - 1& wäre das erste Menü, 2& das zweite Menü, und so weiter.

[v1.1.28+]: Geben Sie 0& an, um das Systemmenü des Fensters zu nutzen.

Untermenü1

Name oder Position des Menüpunkts, der ausgewählt werden soll (siehe oben).

Dieser Parameter kann weggelassen werden, wenn der auf oberster Ebene befindliche Menüpunkt kein Menü enthält (selten).

Untermenü2

Enthält Untermenü1 selbst ein Menü, könnte man hier den Namen oder Position von einem seiner Menüpunkte angeben.

Untermenü3
Untermenü4
Untermenü5
Untermenü6

Wie oben.

Titelausnahme

Alle Fenster, die diesen Wert in ihren Titeln enthalten, werden ignoriert.

Textausnahme

Alle Fenster, die diesen Wert in ihren Textelementen enthalten, werden ignoriert.

Fehlerbehandlung

[v1.1.04+]: Dieser Befehl ist in der Lage, bei Misserfolg eine Ausnahme auszulösen. Weitere Informationen finden Sie unter Laufzeitfehler.

ErrorLevel wird bei Misserfolg auf 1 und bei Erfolg auf 0 gesetzt.

Bemerkungen

Dieser Befehl funktioniert auch, wenn das Zielfenster nicht aktiv ist. Allerdings ist es möglich, dass einige Fenster in einem nicht-minimierten Zustand sein müssen.

Dieser Befehl wird nicht funktionieren, wenn Programme nicht-standardisierte Menüleisten verwenden. Microsoft Outlook und Outlook Express verwenden beispielsweise versteckte Werkzeugleisten für ihre Menüleisten. In solchen Fällen sind ControlSend oder PostMessage gut geeignet, weil sie in der Lage sein sollten, mit einigen dieser nicht-standardisierten Menüleisten interagieren zu können.

Die Menünamen sind nicht Groß-/Kleinschreibung-sensitiv (das heißt, dass Datei->Speichern das gleiche ist wie datei->speichern), außerdem kann das Und-Zeichen (&) weggelassen werden, das den unterstrichenen Buchstaben in einem Menüpunkt kennzeichnet (das heißt, dass &Datei das gleiche ist wie Datei).

In den Menü-Parametern können auch Positionsnummern angegeben werden. Diese Methode existiert, um Menüs zu unterstützen, die keinen Text haben (weil sie beispielsweise Bilder statt Text enthalten). Position 1& ist der erste Menüpunkt (z. B. das Datei-Menü), Position 2& ist der zweite Menüpunkt (z. B. das Bearbeiten-Menü), und so weiter. Menü-Trennlinien zählen auch als Menüpunkte beim Bestimmen der Position.

Fenstertitel und -texte sind Groß-/Kleinschreibung-sensitiv. Versteckte Fenster werden nur erkannt, wenn DetectHiddenWindows eingeschaltet ist.

Systemmenü [v1.1.28+]

Menü kann 0& sein, um einen Menüpunkt im Systemmenü des Fensters auszuwählen. Dieses Menü kann in der Regel aufgerufen werden, wenn man Alt+Leer drückt oder auf das Symbol in der Titelleiste des Fensters klickt. Zum Beispiel:

; Fügen Sie einen Befehl in cmd.exe ein, ohne das Fenster zu aktivieren.
Clipboard := "echo Hallo, Welt!`r"
WinMenuSelectItem ahk_exe cmd.exe,, 0&, Bearbeiten, Einfügen

Vorsicht: Wenden Sie diese Methode nur bei Fenstern an, die benutzerdefinierte Menüpunkte in ihrem Systemmenü haben.

Wenn das Fenster noch kein benutzerdefiniertes Systemmenü hat, wird eine Kopie des Standard-Systemmenüs erstellt und dem Zielfenster als Nebeneffekt zugeordnet. Diese Kopie wird vom System zerstört, wenn das Skript beendet wird, und führt dazu, dass andere Skripte nicht mehr darauf zugreifen können. Vermeiden Sie daher, 0& in Verbindung mit Menüpunkten zu nutzen, die alle Fenster standardmäßig im Systemmenü haben. Versuchen Sie stattdessen, die WM_SYSCOMMAND-Meldung direkt via PostMessage zu senden. Zum Beispiel:

; Hat denselben Effekt wie "WinMinimize A", plus der System-Sound beim Minimieren eines Fensters.
WM_SYSCOMMAND := 0x112
SC_MINIMIZE := 0xF020
PostMessage WM_SYSCOMMAND, SC_MINIMIZE, 0,, A

Siehe auch

ControlSend, PostMessage

Beispiele

#1: Wählt Datei->Öffnen im Editor aus:

WinMenuSelectItem, Unbenannt - Editor, , Datei, Öffnen

; Wie oben, nur mit Positionsangabe:
WinMenuSelectItem, Unbenannt - Editor, , 1&, 2&