Results 1 to 4 of 4

Thread: Running in the System Tray

  1. #1

    Thread Starter
    Junior Member
    Join Date
    Feb 1999
    Location
    Turner ME USA
    Posts
    18

    Post

    Does anyone have any suggestions on how to a program in the System Tray, like where the Volume Control and Clock runs, instead of the Task Bar?

    Thanks for your help!

    Jeff

  2. #2
    Guru Aaron Young's Avatar
    Join Date
    Jun 1999
    Location
    Red Wing, MN, USA
    Posts
    2,177

    Post

    Add an Invisible Picturebox to your Form and set the ShowInTaskbar Property to False..
    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
    ------------------
    Aaron Young
    Analyst Programmer
    [email protected]
    [email protected]

  3. #3
    Junior Member
    Join Date
    Nov 1999
    Posts
    26

    Post

    Who do you make a PopMenu appear though.

    Any help would be greatly appreitiated,



    ------------------
    Quadrex
    [email protected]
    Quadrex Programming


  4. #4
    Guru Aaron Young's Avatar
    Join Date
    Jun 1999
    Location
    Red Wing, MN, USA
    Posts
    2,177

    Post

    Make a Standard Menu on the Form using the Menu Editor, then set the Menu's visible Property to False, (Unchecked), then in the Right Click Section of the Code I posted, use:

    Me.PopupMenu mnuPopup

    Where mnuPopup is the Name of your Invisible Menu.


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

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width