9 Ноябрь 2008

Как поместить иконку в системный трей?

Tray |  Таги: ,

Как поместить иконку в системный трей?
На форме должны находиться две кнопки.

Option Explicit
Private Declare Function Shell_NotifyIcon Lib "shell32.dll" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
Private Const NIM_ADD = &H0
Private Const NIM_DELETE = &H2
Private Const NIM_MODIFY = &H1
Private Const WM_MOUSEMOVE = &H200
Private Const NIF_MESSAGE = &H1
Private Const NIF_TIP = &H4
Private Const NIF_ICON = &H2
Private Const WM_LBUTTONDBLCLK = &H203
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Private Const WM_RBUTTONDBLCLK = &H206
Private Const WM_RBUTTONDOWN = &H204
Private Const WM_RBUTTONUP = &H205
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 tray As NOTIFYICONDATA

Private Sub Command1_Click()
    Shell_NotifyIcon NIM_ADD, tray
End Sub

Private Sub Command2_Click()
    Shell_NotifyIcon NIM_DELETE, tray
End Sub

Private Sub Form_Load()
    Command1.Caption = "Добавить"
    Command2.Caption = "Удалить"
    tray.cbSize = Len(tray)
    tray.hIcon = Me.Icon
    tray.hwnd = Me.hwnd
    tray.szTip = "Всплывающая подсказка" & Chr(0)
    tray.uCallbackMessage = WM_MOUSEMOVE
    tray.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
    tray.uID = 0
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim msg As Long

    msg = X / Screen.TwipsPerPixelX

    Select Case msg
        Case WM_LBUTTONDBLCLK
            Me.Print "Двойной клик левой кнопкой"
        Case WM_LBUTTONDOWN
            Me.Print "Левая кнопка мыши нажата"
        Case WM_LBUTTONUP
            Me.Print "Левая кнопка мыши отжата"
        Case WM_RBUTTONDBLCLK
            Me.Print "Двойной клик правой кнопкой"
        Case WM_RBUTTONDOWN
            Me.Print "Правая кнопка мыши нажата"
        Case WM_RBUTTONUP
            Me.Print "Правая кнопка мыши отжата"
    End Select
End Sub


У нас куча комментариев (2) на запись “Как поместить иконку в системный трей?”

Почему бы Вам не высказать свое мнение! Позвольте нам узнать, что Вы думаете...

  1. 1 On 12.04.2009, Rody66 said:

    Огромное спасибо!!! Долго искал!!!)))

  2. 2 On 31.05.2009, tropavert said:

    Rody,привет!!

Оставить комментарий

Я не робот.