powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Отключение пункта меню
3 сообщений из 3, страница 1 из 1
Отключение пункта меню
    #36059715
Vadim M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли( и как) в VBА отлючить в окне Internet Explorer пункт меню File->Close?
Как найти нужное окно, я знаю. Как в нем найти меню?
Я пробовал использовать GetMenu API. Она возвращает дескриптор, но GetItemsCount возвращает 0.

Спасибо.
...
Рейтинг: 0 / 0
Отключение пункта меню
    #36059726
Vadim M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И второй вопрос - как отключить Close в меню, появляющемся при нажатии правой кнопки.
...
Рейтинг: 0 / 0
Отключение пункта меню
    #36065416
Фотография Letter_Q
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот это ответ на второй вопрос:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Const MF_BYPOSITION = &H400&
Const MF_REMOVE = &H1000&
Private Sub Form_Load()
    Dim hSysMenu As Long, nCnt As Long
    ' Get handle IE system menu
    ' (Restore, Maximize, Move, close etc.)
    hSysMenu = GetSystemMenu(hwnd_IE, False)

    If hSysMenu Then
        ' Get System menu's menu count
        nCnt = GetMenuItemCount(hSysMenu)
        If nCnt Then
            ' Menu count is based on 0 (0, 1, 2, 3...)
            RemoveMenu hSysMenu, nCnt -  1 , MF_BYPOSITION Or MF_REMOVE
            RemoveMenu hSysMenu, nCnt -  2 , MF_BYPOSITION Or MF_REMOVE ' Remove the seperator
            DrawMenuBar Me.hwnd
            ' Force caption bar's refresh. Disabling X button
            Me.Caption = "Try to close me!"
        End If
    End If
End Sub
А по первому сам не знаю.
GetMenu на самом деле возвращает какую-то хню, а не хандлер, если ищется хендлер не своего приложения, а чужого, я попробовал.
А кстати, для Мозиллы и Екселя ничего вообще возвращает, вернее возвращает 0, т.е. не отрабатывает.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Отключение пункта меню
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]