Hallo Bitnugger,
bei Deinem obriges Script Example 1 kann man ja nur ein Item entfernen.
Durch eine Schleife kann man ja alle Menü Items mit _GUICtrlMenu_RemoveMenu entfernen.
Aber wie hole ich die wieder mit einer Schleife zurück?
Ich möchte gerne von einem externen Program das Menü Item komplett verstecken und nach einem Tastendruck wieder hervorholen.
Schon mal danke im vorraus.
C
Opt('MustDeclareVars', 1)
#include <GUIConstantsEx.au3>
#include <GuiMenu.au3>
Global $g_idMemo
Example1()
;~ Example2()
Func Example1()
Local $hWnd, $hMain, $iCmdID, $hMenu_save
; Open Notepad
Run("notepad.exe")
WinWaitActive("[CLASS:Notepad]")
$hWnd = WinGetHandle("[CLASS:Notepad]")
$hMain = _GUICtrlMenu_GetMenu($hWnd)
;~ ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $hMain = ' & $hMain & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
;~ $iCmdID = _GUICtrlMenu_GetItemID ( $hMain, 4)
;~ ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iCmdID = ' & $iCmdID & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
Sleep(1000)
; Remove Help menu
;~ $hMenu_save = _GUICtrlMenu_GetItemSubMenu($hMain, 4)
;~ ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : Remove Help menu : ' & _GUICtrlMenu_RemoveMenu($hMain, 4) & ' - $hMenu_save = ' & $hMenu_save & @CRLF)
For $iCmdID = _GUICtrlMenu_GetItemCount ($hMain) - 1 To 0 Step - 1
ConsoleWrite($hMain & " " & $iCmdID & @CRLF)
_GUICtrlMenu_RemoveMenu ($hMain, $iCmdID)
Next
Sleep(1000)
; Restore Help menu
; _GUICtrlMenu_InsertMenuItem($hMain, 4, "&New Help", $iCmdID, $hMain)
; ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : Restore Help menu : ' & _GUICtrlMenu_SetItemSubMenu($hMain, 4, $hMenu_save) & @CRLF)
; _GUICtrlMenu_SetMenu($hWnd, $hMain)
;funktioniert nicht
For $iCmdID = _GUICtrlMenu_InsertMenuItem ($hMain, $iCmdID, $hMain) - 1 To 0 Step - 1
_GUICtrlMenu_SetMenu($hWnd, $hMain)
Next
EndFunc ;==>Example1
Alles anzeigen