Private Type MENUITEMINFO
cbSize As Long
fMask As Long
fType As Long
fState As Long
wID As Long
hSubMenu As Long
hbmpChecked As Long
hbmpUnchecked As Long
dwItemData As Long
dwTypeData As String
cch As Long
End Type
Private Type MENUITEMINFO
cbSize As Long
fMask As Long
fType As Long
fState As Long
wID As Long
hSubMenu As Long
hbmpChecked As Long
hbmpUnchecked As Long
dwItemData As Long
dwTypeData As String
cch As Long
End Type
Private Declare Function SetMenuItemInfo Lib "user32" Alias "SetMenuItemInfoA" (ByVal hMenu As Long, ByVal uItem As Long, ByVal fByPosition As Long, lpmii As MENUITEMINFO) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function SetMenu Lib "user32" (ByVal hwnd As Long, ByVal hMenu As Long) As Long
Private Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Sub Command1_Click()
Dim strMenu As MENUITEMINFO
Dim hwd As Long, hwdMenu As Long, hwdSubMenu As Long
hwd = FindWindow(vbNullString, "计算器")
hwdMenu = GetMenu(hwd) '取得窗口的菜单
hwdSubMenu = GetSubMenu(hwdMenu, 1)
'如果不为零就成功
MsgBox hwd & "," & hwdMenu & "," & hwdSubMenu
RemoveMenu hwdMenu, 1, MF_BYPOSITION Or MF_REMOVE
End Sub
Private Declare Function EnableMenuItem Lib "user32" (ByVal hMenu As Long, ByVal wIDEnableItem As Long, ByVal wEnable As Long) As Long
Private Declare Function SetMenuItemInfo Lib "user32" Alias "SetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal bool As Boolean, lpcMenuItemInfo As MENUITEMINFO) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function SetMenu Lib "user32" (ByVal hwnd As Long, ByVal hMenu As Long) As Long
Private Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Private Sub Command1_Click()
Dim strMenu As MENUITEMINFO
Dim hwd As Long, hwdMenu As Long, hwdSubMenu As Long
hwd = FindWindow(vbNullString, "TextPad") 'TextPad为您要屏蔽程序的标题,自己改吧
hwdMenu = GetMenu(hwd) '取得窗口的菜单
hwdSubMenu = GetSubMenu(hwdMenu, 1)
MsgBox hwd & "," & hwdMenu & "," & hwdSubMenu '如果输出不为零就正确
EnableMenuItem hwdMenu, 1, MF_DISABLED + MF_BYPOSITION + MF_GRAYED
'第二个参数为你要屏蔽的菜单的位置
End Sub