![]() |
Tipp 0195
|
Anwendung als Icon im SystemTray
|
 |
|
Autor/Einsender: Datum: |
|
Ronald Janowski 18.08.2005 (Update) |
|
Entwicklungsumgebung: |
|
VB 5 |
|
|
Wer kennt sie nicht, die kleinen Symbole unten rechts in der Taskleiste. Um ein
Programm dort in diesem Bereich, dem SystemTray, als Symbol zu platzieren,
bedienen wir uns der API-Funktion Shell_NotifyIcon.
|
Neben dem Anzeigen eines PopUp-Menüs, dem Erkennen von Klick, Doppelklick, der
Unterscheidung zwischen der linken und rechten Maustaste ist auch ein
MouseMove-Ereignis erfolgt auch die Anzeige eines Tool-Tipps.
|
|
Code im Codebereich des Moduls |
|
|
Option Explicit
Public Const NIM_ADD = &H0
Public Const NIM_MODIFY = &H1
Public Const NIM_DELETE = &H2
Public Const NIF_MESSAGE = &H1
Public Const NIF_ICON = &H2
Public Const NIF_TIP = &H4
Public Const WM_MOUSEMOVE = &H200
Public Const WM_LBUTTONDOWN = &H201
Public Const WM_LBUTTONUP = &H202
Public Const WM_LBUTTONDBLCLK = &H203
Public Const WM_RBUTTONDOWN = &H204
Public Const WM_RBUTTONUP = &H205
Public Const WM_RBUTTONDBLCLK = &H206
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 Declare Function Shell_NotifyIcon Lib "shell32" Alias _
"Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As _
NOTIFYICONDATA) As Boolean
Public Declare Function SetForegroundWindow Lib "user32.dll" ( _
ByVal hwnd As Long) As Long
Public TIcon As NOTIFYICONDATA
|
|
|
Code im Codebereich der Form |
|
|
Option Explicit
Private Sub cmdSysTray_Click()
Me.Hide
With TIcon
.cbSize = Len(TIcon)
.hWnd = Picture1.hWnd
.uId = 1&
.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
.ucallbackMessage = WM_MOUSEMOVE
.hIcon = Picture1.Picture
.szTip = "Rechte Maustaste für Menü" & vbNullChar
End With
Shell_NotifyIcon NIM_ADD, TIcon
End Sub
Private Sub Form_Unload(Cancel As Integer)
Shell_NotifyIcon NIM_DELETE, TIcon
Set frmSysTray = Nothing
End Sub
Private Sub Picture1_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_LBUTTONDOWN
Me.Show
Shell_NotifyIcon NIM_DELETE, TIcon
Case WM_RBUTTONUP
SetForegroundWindow Me.hwnd
Me.PopupMenu mnBar
End Select
End Sub
Private Sub mnBarShowWindow_Click()
Me.Show
Shell_NotifyIcon NIM_DELETE, TIcon
End Sub
Private Sub mnBarExit_Click()
Unload Me
End Sub
|
|
|
|
|
Windows-Version |
95 |
 |
|
98/SE |
 |
|
ME |
 |
|
NT |
 |
|
2000 |
 |
|
XP |
 |
|
Vista |
 |
|
Win
7 |
 |
|
|
VB-Version |
VBA 5 |
 |
|
VBA 6 |
 |
|
VB 4/16 |
 |
|
VB 4/32 |
 |
|
VB 5 |
 |
|
VB 6 |
 |
|
|
|
Download (4,6 kB)
|
Downloads bisher: [ 4392 ]
|
|
|