RSS
StartseiteKnowledge LibraryTop 10Impressum

10.1 Wie erstelle ich ein Symbol im Taskleisten-Statusbereich (Tray)?

VB5-VB6

Von: Thorsten Dörfler

Der Taskleisten-Statusbereich (umgs. "Tray" oder auch "der Bereich neben der Uhr" genannt) ist ein beliebter Aufenthaltsort für Anwendungen, die täglich gebraucht werden, aber nur manchmal bedient werden müssen. Eine zusätzliche Schaltfläche in der Taskleiste, wäre da nur störend.

Mit der Shell_NotifyIcon API Funktion kann man seinem Programm einen Platz in diesem Taskleisten-Statusbereich reservieren. Der Einfachheit halber wurden alle notwendigen Aufrufe in einem UserControl (TaskTray.ctl) gekapselt, das Sie am Ende dieses Artikels herunterladen können. Um das Tray Control nutzen zu können, muss die Datei "TrayIcon.ctl" dem Projekt hinzugefügt werden und auf einem Formular platziert werden. Dabei entstehen keinerlei Abhängigkeiten, da das Control im Source eingebunden und mitkompiliert wird.

Nachfolgend einige Anwendungsbeispiele:

TrayIcon anzeigen:
Private Sub Form_Load()
  Set TrayIcon1.Icon = Me.Icon

  With TrayIcon1
    .InfoTip = "Ein informativer ToolTip"
    .ShowIcon
  End With
End Sub
Kontextmenü anzeigen:

"mnuTray" ist dabei ein mit dem Menüeditor erstelltes Standard- Menü:

Private Sub TrayIcon1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer)
  If Button = vbRightButton Then
    TrayIcon1.PopupMenu mnuTray, vbPopupMenuRightButton, mnuTrays(0)
  End If
End Sub
Anwendung ausblenden, wenn minimiert:
Private Sub Form_Resize()
  If Me.WindowState = vbMinimized Then
    TrayIcon1.ShowIcon
    Me.Hide
  End If
End Sub
Anwendung anzeigen:
Private Sub TrayIcon1_DblClick(ByVal Button As Integer, ByVal Shift As Integer)
  If Button = vbLeftButton Then
    Me.WindowState = vbNormal
    Me.Show
  End If
End Sub

Beim Beenden der Anwendung, wird das Tray-Icon automatisch entfernt.

Download TrayIcon.ctl (UserControl im Source inkl. Beispielprojekt) [15 KB]