Num Módulo:
Public Declare Function Shell_NotifyIcon Lib _ "shell32.dll" Alias "Shell_NotifyIconA" _ (ByVal dwMessage As Long, lpData As _ NOTIFYICONDATA) As Long Public 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 Public Const WM_LBUTTONDOWN = &H201 Public Const WM_LBUTTONDBLCLK = &H203 Public Const WM_RBUTTONDOWN = &H204 Public Const WM_RBUTTONDBLCLK = &H206 Public Const NIM_ADD = &H0 Public Const NIM_DELETE = &H2 Public Const NIM_MODIFY = &H1 Public Const NIF_ICON = &H2 Public Const NIF_MESSAGE = &H1 Public Const NIF_TIP = &H4 Public Enum Actions TrayAdd = &H0 TrayModify = &H1 TrayDelete = &H2 End Enum Public Sub SysTray(Action As Actions, Hwnd As _ Long, ToolTip As String, Icon As _ StdPicture) Dim STray As NOTIFYICONDATA STray.uID = vbNull STray.uCallbackMessage = &H200 STray.Hwnd = Hwnd STray.hIcon = Icon STray.szTip = ToolTip & vbNullChar STray.uFlags = NIF_MESSAGE Or NIF_ICON Or _ NIF_TIP STray.cbSize = Len(STray) Select Case Action Case NIM_ADD Call Shell_NotifyIcon(NIM_ADD, STray) Case NIM_MODIFY Call Shell_NotifyIcon(NIM_MODIFY, STray) Case NIM_DELETE Call Shell_NotifyIcon(NIM_DELETE, STray) End Select End Sub
No Form, coloque o seguinte código:
Private Sub Form_Resize() If Me.WindowState = 1 Then Call SysTray(TrayAdd, Me.Hwnd, Me.Caption, _ Me.Icon) End If End Sub Private Sub Form_MouseMove(Button As Integer, _ Shift As Integer, X As Single, Y As _ Single) Dim Msg As Long If (Button + Shift + Y) = 0 Then Msg = X / Screen.TwipsPerPixelX Select Case Msg Case WM_LBUTTONDOWN 'Coloque aqui a rotina a ser executada 'quando ocorrer um clique com o botão 'esquerdo no icon do System Tray. Case WM_LBUTTONDBLCLK 'Coloque aqui a rotina a ser executada 'quando ocorrer um duplo clique com o 'botão esquerdo no icon do System Tray. 'Neste exemplo, a janela será restaurada 'e o ícone retirado so System Tray. Me.WindowState = 0 Call SysTray(TrayDelete, Me.Hwnd, _ Me.Caption, Me.Icon) Me.SetFocus Case WM_RBUTTONDOWN 'Coloque aqui a rotina a ser executada 'quando ocorrer um clique com o botão 'direito do rato no icon do System Tray. Case WM_RBUTTONDBLCLK 'Coloque aqui a rotina a ser executada 'quando ocorrer um duplo clique com o 'botão direito do rato no icon do System 'Tray. End Select End If 'Se você precisar colocar algum outro código neste 'evento, pode coloca-lo aqui sem maiores problemas. End Sub
PRONTO!!!!! Agora é só executar!!!
Creditos: 3D Man®