VB-Homepage Tipp 017

Programm für Win95/WinNT Task-Leiste definieren

Wenn es Sie interessiert, wie man ein Programm definiert, das beim Laden keine Form aufbaut, sondern lediglich ein Symbol in die Task-Leiste von Windows95/98 bzw. WindowsNT 4.0 integriert und erst nach einem Klick auf dieses Symbol ein Ereignis gestartet wird, dann können Sie mit nachfolgenden Anweisung ein solches Programm schreiben.

Öffnen Sie als erstes ein neues VB-Projekt und schreiben Sie in den Abschnitt Allgemein/Deklarationen folgende Anweisungen

Option Explicit
Private Type NOTIFYICONDATA
   cbSize As Long
   hWnd As Long
   uId As Long
   uFlags As Long
   ucallbackMessage As Long
   hIcon As Long
   szTipp As String * 64
End Type

Private Const NIM_ADD = &H0
Private Const NIM_MODIFY = &H1
Private Const NIM_DELETE = &H2
Private Const WM_MOUSEMOVE = &H200
Private Const NIF_MESSAGE = &H1
Private Const NIF_ICON = &H2
Private Const NIF_TIP = &H4

Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
Dim t As NOTIFYICONDATA

Menüpunkte festlegen
Als nächstes definieren Sie mit dem Menü-Editor ein Menü für Ihre Form.
einen Menüpunkt "PopupMenu" anlegen
Caption=PopupMenu
Name=xx

Eingerückt dann die Abschnitte die später nach einem rechten Mausklick auf das Symbol erscheinen sollen
Caption=Info
Name=Info

Caption=Ende
Name=Ende

Verlassen Sie den Menüeditor und weisen Sie, in dem Sie auf den entsprechenden Menüpunkt klicken, den Menüpunkten folgendes zu.

Info/Click
Private Sub Info_Click()
Form2.Show 'läd die zweite form
End Sub

Ende/Click
Private Sub Ende_Click()
Unload Me
End
End Sub

Nun widmen wir uns wieder der Form1, die noch folgende zwei Prozeduren erhält.
Form1/Load
Private Sub Form_Load()
t.cbSize = Len(t)
t.hWnd = picture1(0).hWnd
t.uId = 1&
t.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
t.ucallbackMessage = WM_MOUSEMOVE
t.hIcon = picture1(0).Picture
t.szTipp = "Ihr Text der angezeigt wird, wenn Maus über dem Symbol steht." & Chr$(0)
Shell_NotifyIcon NIM_ADD, t
Me.Hide
App.TaskVisible = False
End Sub

Form1/QueryUnload
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
t.cbSize = Len(t)
t.hWnd = picture1(0).hWnd
t.uId = 1&
Shell_NotifyIcon NIM_DELETE, t
End Sub

Legen Sie jetzt folgende Objekte in der Form1 an.
Eine Picturebox, bei der Sie einige Eigenschaften modifizieren sollten.
Definieren sie ein Pictureobjekt und laden sie ein Bild (Icon)
Folgende Eigenschaften sind nun noch zu modifizieren
AutoSize=True
AutoRedraw=True
Appearance=0-Flat
Index=0

Dem Pictureobjekt geben Sie außerdem noch folgende Prozedur mit auf den Weg
Picture1/MouseMove
Private Sub picture1_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
If Hex(X) = "1E3C" Then
   Me.PopupMenu XX
End If
End Sub

Um ein weiteres Ereignis bei Mausklick auf unser Task-Leisten Symbol zu bekommen, definieren Sie eine zweite Form und binden dort wieder ein Pictureobjekt ein (wenn Sie wollen, suchen Sie sich ein schönes Motiv) oder denken Sie sich eine eigene Funktionalität dieser Form aus.
Sie sollten aber auf alle Fälle einen Commandbutton definieren, der lediglich nachfolgende Anweisung enthält.

Private Sub Command1_Click()
Form2.Hide 'blendet die zweite form wieder aus
End Sub

Desweiteren können Sie die Eigenschaften der Form2 noch folgendermaßen modifizieren.
Caption=""
ControlBox=False
MinButton=False
MaxButton=False

Das war es auch schon, ab sofort steht Ihnen die Task-Leiste offen.


Tipp-Download

Quelle :

Zurück zur Übersichtsseite