Отключение пункта меню - VB
Формулировка задачи:
Можно ли( и как) в VBА отлючить в окне Internet Explorer пункт меню File->Close?
Как найти нужное окно, я знаю. Как в нем найти меню?
Я пробовал использовать GetMenu API. Она возвращает дескриптор, но GetItemsCount возвращает 0.
Спасибо.
Как найти нужное окно, я знаю. Как в нем найти меню?
Я пробовал использовать GetMenu API. Она возвращает дескриптор, но GetItemsCount возвращает 0.
Спасибо.
Решение задачи: «Отключение пункта меню»
textual
Листинг программы
<font color="blue">Private</font> <font color="blue">Declare</font> <font color="blue">Function</font> GetSystemMenu Lib <font color="teal">"user32"</font> (<font color="blue">ByVal</font> hwnd <font color="blue">As</font> <font color="blue">Long</font>, <font color="blue">ByVal</font> bRevert <font color="blue">As</font> <font color="blue">Long</font>) <font color="blue">As</font> <font color="blue">Long</font> <font color="blue">Private</font> <font color="blue">Declare</font> <font color="blue">Function</font> GetMenuItemCount Lib <font color="teal">"user32"</font> (<font color="blue">ByVal</font> hMenu <font color="blue">As</font> <font color="blue">Long</font>) <font color="blue">As</font> <font color="blue">Long</font> <font color="blue">Private</font> <font color="blue">Declare</font> <font color="blue">Function</font> DrawMenuBar Lib <font color="teal">"user32"</font> (<font color="blue">ByVal</font> hwnd <font color="blue">As</font> <font color="blue">Long</font>) <font color="blue">As</font> <font color="blue">Long</font> <font color="blue">Private</font> <font color="blue">Declare</font> <font color="blue">Function</font> RemoveMenu Lib <font color="teal">"user32"</font> (<font color="blue">ByVal</font> hMenu <font color="blue">As</font> <font color="blue">Long</font>, <font color="blue">ByVal</font> nPosition <font color="blue">As</font> <font color="blue">Long</font>, <font color="blue">ByVal</font> wFlags <font color="blue">As</font> <font color="blue">Long</font>) <font color="blue">As</font> <font color="blue">Long</font> <font color="blue">Const</font> MF_BYPOSITION = &H400& <font color="blue">Const</font> MF_REMOVE = &H1000& <font color="blue">Private</font> <font color="blue">Sub</font> Form_Load() <font color="blue">Dim</font> hSysMenu <font color="blue">As</font> <font color="blue">Long</font>, nCnt <font color="blue">As</font> <font color="blue">Long</font> <font color="00AA00">' Get handle IE system menu</font> <font color="00AA00">' (Restore, Maximize, Move, close etc.)</font> hSysMenu = GetSystemMenu(hwnd_IE, False) <font color="blue">If</font> hSysMenu <font color="blue">Then</font> <font color="00AA00">' Get System menu's menu count</font> nCnt = GetMenuItemCount(hSysMenu) <font color="blue">If</font> nCnt <font color="blue">Then</font> <font color="00AA00">' Menu count is based on 0 (0, 1, 2, 3...)</font> RemoveMenu hSysMenu, nCnt - <font color="darkblue"><b>1</b></font>, MF_BYPOSITION <font color="blue">Or</font> MF_REMOVE RemoveMenu hSysMenu, nCnt - <font color="darkblue"><b>2</b></font>, MF_BYPOSITION <font color="blue">Or</font> MF_REMOVE <font color="00AA00">' Remove the seperator</font> DrawMenuBar <font color="blue">Me</font>.hwnd <font color="00AA00">' Force caption bar's refresh. Disabling X button</font> <font color="blue">Me</font>.Caption = <font color="teal">"Try to close me!"</font> <font color="blue">End</font> <font color="blue">If</font> <font color="blue">End</font> <font color="blue">If</font> <font color="blue">End</font> <font color="blue">Sub</font>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д