Отключение пункта меню - VB

Узнай цену своей работы

Формулировка задачи:

Можно ли( и как) в VBА отлючить в окне Internet Explorer пункт меню File->Close?
Как найти нужное окно, я знаю. Как в нем найти меню?
Я пробовал использовать 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>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.8 из 5