(仅供参考) 
向系统菜单中添加新项,并且执行对应事件,在窗体任意位置弹出系统菜单,并且执行事件 '窗体 Option Explicit 
Private Sub Form_Load()     On Error Resume Next          lhSysMenu = GetSystemMenu(hwnd, 0&)     lRet = AppendMenu(lhSysMenu, MF_SEPARATOR, 0&, vbNullString)     lRet = AppendMenu(lhSysMenu, MF_STRING, IDM_ABOUT, "About...")     Show          ProcOld = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc) End Sub 
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)     Dim r As RECT     Dim p As POINTAPI     If Button = vbRightButton Then         GetCursorPos p         TrackPopupMenu lhSysMenu, 0, p.X, p.Y, 0, Me.hwnd, r     End If End Sub 
Private Sub Form_Unload(Cancel As Integer)     SetWindowLong hwnd, GWL_WNDPROC, ProcOld End Sub
  
'------------------------------------------------------------- '模块 Option Explicit Public Declare Function TrackPopupMenu Lib "user32" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal X As Long, ByVal Y As Long, ByVal nReserved As Long, ByVal hwnd As Long, lprc As RECT) As Long Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Public Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As String) As Long Public Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long Public Type RECT         Left As Long         Top As Long         Right As Long         Bottom As Long End Type Public Type POINTAPI         X As Long         Y As Long End Type Public ProcOld As Long Public Const TPM_LEFTALIGN = &H0& Public Const WM_SYSCOMMAND = &H112 Public Const MF_SEPARATOR = &H800& Public Const MF_STRING = &H0& Public Const GWL_WNDPROC = (-4) Public Const IDM_ABOUT As Long = 1010 Public Const WM_COMMAND = &H111 Public lhSysMenu As Long, lRet As Long 
Public Function WindowProc(ByVal hwnd As Long, ByVal iMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long     Select Case iMsg     Case WM_SYSCOMMAND         If wParam = IDM_ABOUT Then             MsgBox "VB Web Append to System Menu Example", vbInformation, "About"             Exit Function         End If     Case WM_COMMAND         If wParam = IDM_ABOUT Then             MsgBox "VB Web Append to System Menu Example", vbInformation, "About"             Exit Function         Else             CallWindowProc ProcOld, hwnd, WM_SYSCOMMAND, wParam, lParam             WindowProc = 0             Exit Function         End If     End Select     WindowProc = CallWindowProc(ProcOld, hwnd, iMsg, wParam, lParam) End Function  
 
  |