Icons in der Taskbar
Seit es Windows95 gibt, gibt es Programme, die Ihr Icon in die Notification-Area stellen und dort für aufsehen sorgen. Am Anfang war es auch ein eher selten genutzer Platz. Mittlerweile macht sich jeder mal dran.
Und um in VB ein Programm zu schreiben, daß dies tut braucht es mal wieder, wie sollte es auch anders sein, eine API - Funktion.
Man behilft sich bei dieser Funktion mit einer PictureBox, da sonst eine Auswertung der MouseEreignisse nicht (oder sehr schwer wird).
Deklaration:Private Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
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 Const NIM_ADD = &H0
Private Const NIM_DELETE = &H2
Private Const NIM_MODIFY = &H1
Private Const NIF_ICON = &H2
Private Const NIF_MESSAGE = &H1
Private Const NIF_TIP = &H4
Private Const WM_MOUSEMOVE = &H200
Dim NoIc As NOTIFYICONDATA
Dim ret As Long
With NoIc
.cbSize = Len(NoIc)
.hIcon = Me.Icon
.hwnd = Me.hwnd
.szTip = "Der Tooltip schlechthin" & Chr(0)
.uCallbackMessage = WM_MOUSEMOVE
.uFlags = NIF_MESSAGE Or NIF_ICON Or NIF_TIP
.uID = 0
Do While ret = 0
.uID = .uID + 1
ret = Shell_NotifyIcon(NIM_ADD, NoIc)
Loop
End With
NoIc.szTip = "Jetzt wird alles anders..." & Chr(0)
Shell_NotifyIcon NIM_MODIFY, NoIc
Shell_NotifyIcon NIM_DELETE, NoIc
Um das ganze nicht nur schön aussehen zu lassen, sondern auch sinnvoll einzusetzen wird das ganze jetzt noch im MouseOver-Ereigniss der PictureBox ausgewertet.
Dim Mess As Long
Mess = (X And &HFF) * &H100
Select Case Mess
Case 0
Case &HC00
Case &H1800
Case &H2400
Case &H3000
Case &H3C00
Case &H4800
End Select