Erlaubt der Anwendung den Zugriff auf das Fenstermenü, um es zu kopieren und zu verändern
#include <GuiMenu.au3>
_GUICtrlMenu_GetSystemMenu ( $hWnd [, $bRevert = False] )
$hWnd | Handle zu dem Fenster, welches eine Kopie des Fenstermenüs besitzen soll |
$bRevert | [optional] Legt die durchzuführende Aktion fest. Falls dieser Parameter False ist, gibt die Funktion ein Handle zu einer Kopie des aktuell verwendeten Fenstermenüs zurück. Die Kopie ist identisch zu dem Fenstermenü, aber es kann verändert werden. Falls dieser Parameter True ist, setzt die Funktion das Fenstermenü in den Standardstatus zurück. Das vorherige Fenstermenü wird falls vorhanden zerstört. |
Jedes Fenster welches nicht die GetSystemMenu Funktion verwendet, um seine eigene Kopie des Fenstermenüs zu erstellende empfangen das Standard Fenstermenü.
Das Fenstermenü enthält Items mit verschiedenen ID Werten, wie zum Beispiel $SC_CLOSE, $SC_MOVE und $SC_SIZE. Menüitems auf dem Fenstermenü senden $WM_SYSCOMMAND Nachrichten.
Alle vordefinierten Fenstermenüitems haben ID-Nummern größer als 0xF000.
Falls eine Anwendung Befehle dem Fenstermenü hinzufügt, sollte es ID-Nummern kleiner als 0xF000 verwenden.
Das System graut automatisch Items auf dem Standard-Fenstermenü aus, abhängig von der Situation.
Die Anwendung kann ihr eigenes Markieren oder Ausgrauen durchführen, indem sie auf die $WM_INITMENU Nachricht reagiert, die gesendet wird bevor irgendein Menü dargestellt wird.
- - - - - - - - Erklärung der Controls - - - - - - - -
Suche nach GetSystemMenu in der MSDN Bibliothek.
#include <GuiMenu.au3>
Example()
Func Example()
Local $hWnd, $hMenu, $iCount, $iI
; Startet den Editor
Run("notepad.exe")
WinWaitActive("[CLASS:Notepad]")
$hWnd = WinGetHandle("[CLASS:Notepad]")
$hMenu = _GUICtrlMenu_GetSystemMenu($hWnd)
; Ändert das Systemmenü
_GUICtrlMenu_InsertMenuItem($hMenu, 5, "&AutoIt")
; Zeigt das Systemmenü an
$iCount = _GUICtrlMenu_GetItemCount($hMenu)
Writeln("Handle des Systemmenüs: 0x" & Hex($hMenu))
Writeln("Anzahl Items..........: " & $iCount)
For $iI = 0 To $iCount - 1
Writeln("Item " & $iI & " Text ......: " & _GUICtrlMenu_GetItemText($hMenu, $iI))
Next
EndFunc ;==>Example
; Schreibt eine Zeile mit Text in den Editor
Func Writeln($sText)
ControlSend("[CLASS:Notepad]", "", "Edit1", $sText & @CRLF)
EndFunc ;==>Writeln