| 1 |
joko |
1.1 |
Attribute VB_Name = "TrayIcon" |
| 2 |
|
|
' from: http://www.microsoft.com/msj/archive/S6BB.aspx |
| 3 |
|
|
|
| 4 |
|
|
Option Explicit |
| 5 |
|
|
|
| 6 |
|
|
' alle benötigten API-Deklarationen |
| 7 |
|
|
Public Declare Sub keybd_event Lib "user32" _ |
| 8 |
|
|
(ByVal bVk As Byte, ByVal bScan As Byte, _ |
| 9 |
|
|
ByVal dwFlags As Long, ByVal dwExtraInfo As Long) |
| 10 |
|
|
|
| 11 |
|
|
Public Const KEYEVENTF_KEYUP = &H2 |
| 12 |
|
|
Public Const VK_LWIN = &H5B |
| 13 |
|
|
|
| 14 |
|
|
Public Type NOTIFYICONDATA |
| 15 |
|
|
cbSize As Long |
| 16 |
|
|
hWnd As Long |
| 17 |
|
|
uId As Long |
| 18 |
|
|
uFlags As Long |
| 19 |
|
|
uCallBackMessage As Long |
| 20 |
|
|
hIcon As Long |
| 21 |
|
|
szTip As String * 64 |
| 22 |
|
|
End Type |
| 23 |
|
|
|
| 24 |
|
|
Public Const NIM_ADD = &H0 |
| 25 |
|
|
Public Const NIM_MODIFY = &H1 |
| 26 |
|
|
Public Const NIM_DELETE = &H2 |
| 27 |
|
|
|
| 28 |
|
|
Public Const NIF_MESSAGE = &H1 |
| 29 |
|
|
Public Const NIF_ICON = &H2 |
| 30 |
|
|
Public Const NIF_TIP = &H4 |
| 31 |
|
|
|
| 32 |
|
|
Public Const WM_MOUSEMOVE = &H200 |
| 33 |
|
|
|
| 34 |
|
|
' Konstanten für linke Maustaste |
| 35 |
|
|
Public Const WM_LBUTTONDBLCLK = &H203 ' Doppelklick |
| 36 |
|
|
Public Const WM_LBUTTONDOWN = &H201 ' Maus gedrückt |
| 37 |
|
|
Public Const WM_LBUTTONUP = &H202 ' Maus losgelassen |
| 38 |
|
|
|
| 39 |
|
|
' Konstanten für rechte Maustaste |
| 40 |
|
|
Public Const WM_RBUTTONDBLCLK = &H206 ' Doppelklick |
| 41 |
|
|
Public Const WM_RBUTTONDOWN = &H204 ' Maus gedrückt |
| 42 |
|
|
Public Const WM_RBUTTONUP = &H205 ' Maus losgelassen |
| 43 |
|
|
|
| 44 |
|
|
Public Declare Function Shell_NotifyIcon Lib _ |
| 45 |
|
|
"shell32" Alias "Shell_NotifyIconA" ( _ |
| 46 |
|
|
ByVal dwMessage As Long, _ |
| 47 |
|
|
pnid As NOTIFYICONDATA) As Boolean |
| 48 |
|
|
|
| 49 |
|
|
Public nid As NOTIFYICONDATA |
| 50 |
|
|
|
| 51 |
|
|
|
| 52 |
|
|
|
| 53 |
|
|
Public Sub ShowTrayIcon(MainForm As Form, Caption As String) |
| 54 |
|
|
' Symbol der Anwendung zum SysTray hinzufügen |
| 55 |
|
|
With nid |
| 56 |
|
|
.cbSize = Len(nid) |
| 57 |
|
|
.hWnd = MainForm.hWnd |
| 58 |
|
|
.uId = vbNull |
| 59 |
|
|
.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE |
| 60 |
|
|
.uCallBackMessage = WM_MOUSEMOVE |
| 61 |
|
|
.hIcon = MainForm.Icon |
| 62 |
|
|
'.szTip = MainForm.Caption & vbNullChar |
| 63 |
|
|
.szTip = Caption & vbNullChar |
| 64 |
|
|
End With |
| 65 |
|
|
Shell_NotifyIcon NIM_ADD, nid |
| 66 |
|
|
|
| 67 |
|
|
' Anwendung jetzt "verstecken" |
| 68 |
|
|
MainForm.Hide |
| 69 |
|
|
End Sub |
| 70 |
|
|
|
| 71 |
|
|
Public Sub RemoveTrayIcon() |
| 72 |
|
|
' Symbol aus dem Systray entfernen, |
| 73 |
|
|
' wenn das Programm beended wird |
| 74 |
|
|
Shell_NotifyIcon NIM_DELETE, nid |
| 75 |
|
|
End Sub |
| 76 |
|
|
|
| 77 |
|
|
Public Sub UpdateTrayIcon(TipText As String) |
| 78 |
|
|
With nid |
| 79 |
|
|
.szTip = TipText & vbNullChar |
| 80 |
|
|
End With |
| 81 |
|
|
Shell_NotifyIcon NIM_MODIFY, nid |
| 82 |
|
|
End Sub |