'托盘开始 Private Type NOTIFYICONDATA cbSize As Long hwnd As Long uId As Long uFlags As Long ucallbackMessage As Long hIcon As Long szTip As String * 64 End Type Private t As NOTIFYICONDATAPrivate Const NIM_ADD = &H0 Private Const NIM_MODIFY = &H1 Private Const NIM_DELETE = &H2 Private Const WM_MOUSEMOVE = &H200 Private Const WM_LBUTTONUP = &H202 Private Const WM_RBUTTONUP = &H205 Private Const WM_LBUTTONDBLCLK = &H203Private Const NIF_MESSAGE = &H1 Private Const NIF_ICON = &H2 Private Const NIF_TIP = &H4Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As BooleanPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, Y As Single) Dim lmsg As Single lmsg = x / Screen.TwipsPerPixelX ' Debug.Print lmsg Select Case lmsg Case WM_LBUTTONUP ' "msgbox "请用鼠标右键点击图标!", vbinformation, "实时播音专家" ' "单击左键,显示窗体 ' "下面两句的目的是把窗口显示在窗口最顶层 ' "me.show ' Me.SetFocus Case WM_RBUTTONUP ' MsgBox "a" PopupMenu menu_Tools '如果是在系统tray图标上点右键,则弹出菜单menutray ' "" case wm_mousemove ' "" case wm_lbuttondown Case WM_LBUTTONDBLCLK Me.WindowState = 0 '下面两句的目的是把窗口显示在窗口最顶层 Me.Show Me.SetFocus
' "" case wm_rbuttondown ' "" case wm_rbuttondblclk ' "" case else End SelectEnd Sub 关键代码...
'托盘开始
Private Type NOTIFYICONDATA
cbSize As Long
hwnd As Long
uId As Long
uFlags As Long
ucallbackMessage As Long
hIcon As Long
szTip As String * 64
End Type
Private t As NOTIFYICONDATAPrivate Const NIM_ADD = &H0
Private Const NIM_MODIFY = &H1
Private Const NIM_DELETE = &H2
Private Const WM_MOUSEMOVE = &H200
Private Const WM_LBUTTONUP = &H202
Private Const WM_RBUTTONUP = &H205
Private Const WM_LBUTTONDBLCLK = &H203Private Const NIF_MESSAGE = &H1
Private Const NIF_ICON = &H2
Private Const NIF_TIP = &H4Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As BooleanPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, Y As Single)
Dim lmsg As Single
lmsg = x / Screen.TwipsPerPixelX
' Debug.Print lmsg
Select Case lmsg
Case WM_LBUTTONUP
' "msgbox "请用鼠标右键点击图标!", vbinformation, "实时播音专家"
' "单击左键,显示窗体
' "下面两句的目的是把窗口显示在窗口最顶层
' "me.show
' Me.SetFocus
Case WM_RBUTTONUP
' MsgBox "a"
PopupMenu menu_Tools '如果是在系统tray图标上点右键,则弹出菜单menutray
' "" case wm_mousemove
' "" case wm_lbuttondown
Case WM_LBUTTONDBLCLK
Me.WindowState = 0
'下面两句的目的是把窗口显示在窗口最顶层
Me.Show
Me.SetFocus
' "" case wm_rbuttondown
' "" case wm_rbuttondblclk
' "" case else
End SelectEnd Sub
关键代码...
Re33 = SendMessage(hWindow, LVM_ENSUREVISIBLE, j, 1)''滚动到指定行
Re33 = SendMessage(hWindow, LVM_SETITEMSTATE, j, ByVal pMyItemMemory)'选中
Call SendMessage(hWindow, LVM_GETITEMPOSITION, j, ByVal AddressOfFileMap)'获得坐标
ReadProcessMemory pHandle, ByVal AddressOfFileMap, TempRect, 8&, 0
Call ClientToScreen(hWindow, TempRect)'转换屏幕坐标
Call SetCursorPos(TempRect.x + 20, TempRect.y + 5)''移动鼠标到指定点
mouse_event MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0
Sleep 10
mouse_event MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0'按下右键弹出菜单
Sleep 500'等待弹出
Call SetCursorPos(TempRect.x + 50, TempRect.y + 20)'移到菜单
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
Sleep 10
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0'点击菜单