Add an Invisible Picturebox to your Form, then Paste this Code:
Code:
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 Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long

Private Const NIF_ICON = &H2
Private Const NIF_MESSAGE = &H1
Private Const NIF_TIP = &H4
Private Const NIM_ADD = &H0
Private Const NIM_DELETE = &H2
Private Const NIM_MODIFY = &H1
Private Const WM_MOUSEMOVE = &H200
Private Const WM_LBUTTONDBLCLK = &H203
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_RBUTTONDOWN = &H204

Private tTrayIcon As NOTIFYICONDATA

Private Sub Form_Load()
    'Create a Tray Icon
    Picture1.Visible = False
    With tTrayIcon
        .hIcon = Icon
        .hwnd = Picture1.hwnd
        .szTip = "My Tray Icon" & Chr(0)
        .uCallbackMessage = WM_MOUSEMOVE
        .uFlags = NIF_ICON Or NIF_MESSAGE Or NIF_TIP
        .uID = 1
        .cbSize = Len(tTrayIcon)
    End With
    Shell_NotifyIcon NIM_ADD, tTrayIcon
End Sub

Private Sub Form_Resize()
    DoEvents
    If WindowState = vbMinimized Then
        Hide
    End If
End Sub

Private Sub Form_Unload(Cancel As Integer)
    'Remove the Tray Icon
    Shell_NotifyIcon NIM_DELETE, tTrayIcon
End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Select Case ScaleX(X, vbTwips, vbPixels)
    Case WM_RBUTTONDOWN
        'Show Popup Menu
    Case WM_LBUTTONDBLCLK
        'Show the Form
        WindowState = vbNormal
        Show
    End Select
End Sub
If you want it even simpler I believe there's an OCX available on this site somewhere, which bascially does all this in the background.

Only downside is you have to ship the OCX with your Project.


------------------
Aaron Young
Analyst Programmer
[email protected]
[email protected]