Wollten Sie schon immer Ihre Anwendung im SysTray haben, um z.B. bei einem Rechtsklick ein Popup-Menü erscheinen zu lassen, etc.? Mit folgendem Quellcode können Sie das schnell und einfach bewerkstaelligen. Der Code wird das Icon Ihrer Anwendung im System-Tray der Taskbar links neben der Uhrzeit-Anzeige anzeigen. Klickt der Anwender nun auf das Symbol, wird ein Ereignis ausgelöst, in welchem Sie die Maustaste abfragen, um so entsprechend reagieren zu können. Ja, ja, wir hatten ja schon einmal solch einen Code im Archiv. Korrekt! Aber dieser Code unterscheidet sich von dem bereits bekannten Tipp ( Icon Ihrer Anwendung im SystemTray) dadurch, dass man keine extra Picture-Box mit einem Symbol zur Verfuegung stellen muss. Hier der Code: Erstellen Sie ein neues Modul mit nachfolgenden Deklarationen. Option Explicit ' alle benötigten API-Deklarationen Public Declare Sub keybd_event Lib "user32" ( _ ByVal bVk As Byte, _ ByVal bScan As Byte, _ ByVal dwFlags As Long, _ ByVal dwExtraInfo As Long) Public Const KEYEVENTF_KEYUP = &H2 Public Const VK_LWIN = &H5B 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 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 ' Konstanten für linke Maustaste Public Const WM_LBUTTONDBLCLK = &H203 ' Doppelklick Public Const WM_LBUTTONDOWN = &H201 ' Maus gedrückt Public Const WM_LBUTTONUP = &H202 ' Maus losgelassen ' Konstanten für rechte Maustaste Public Const WM_RBUTTONDBLCLK = &H206 ' Doppelklick Public Const WM_RBUTTONDOWN = &H204 ' Maus gedrückt Public Const WM_RBUTTONUP = &H205 ' Maus losgelassen Public Declare Function Shell_NotifyIcon Lib "shell32" _ Alias "Shell_NotifyIconA" ( _ ByVal dwMessage As Long, _ pnid As NOTIFYICONDATA) As Boolean Public nid As NOTIFYICONDATA Beispiel Beim Klicken auf die Schaltfläche wird Anwendung ausgeblendet und im System-Tray angezeigt: Private Sub cmdHide_Click() ' Symbol der Anwendung zum SysTray hinzufügen With nid .cbSize = Len(nid) .hWnd = Me.hWnd .uId = vbNull .uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE .uCallBackMessage = WM_MOUSEMOVE .hIcon = Me.Icon .szTip = Me.Caption & vbNullChar End With Shell_NotifyIcon NIM_ADD, nid ' Anwendung jetzt "verstecken" Me.Hide End Sub Alle Maus-Ereignisse werden nun an die Form weitergeleitet und können im Form_MouseMove-Ereignis abgefragt werden: Private Sub Form_MouseMove(Button As Integer, _ Shift As Integer, X As Single, Y As Single) ' Das MouseMove Ereignis wird ausgelöst, wenn die ' Maus über das Symbol im Systray geführt wird Dim lMsg As Long Dim sFilter As String lMsg = X / Screen.TwipsPerPixelX Select Case lMsg Case WM_LBUTTONDOWN ' linke Maustaste wird gedrückt Case WM_LBUTTONUP ' linke Maustaste wird losgelassen Case WM_LBUTTONDBLCLK ' linke Maustaste - Doppelklick Case WM_RBUTTONDOWN ' rechte Maustaste wird gedrückt Case WM_RBUTTONUP ' rechte Maustaste wird losgelassen ' (jetzt z.B. Popup-Menü öffnen) PopupMenu MenuPopUp Case WM_RBUTTONDBLCLK ' rechte Maustaste - Doppeklick End Select End Sub Beim Klicken auf einen Menü-Eintrag aus dem PopUp-Menü muss der entsprechende Code ausgeführt werden: Private Sub mnuPopUp_Click(Index As Integer) ' Symbol aus dem Systray entfernen Shell_NotifyIcon NIM_DELETE, nid Select Case Index Case 0 ' Wiederherstellen Me.Show Case 1 ' Beenden End End Select End Sub Wird das Programm beendet, muss noch das Icon aus dem System-Tray entfernt (falls dort noch vorhanden): Private Sub Form_Unload(Cancel As Integer) ' Symbol aus dem Systray entfernen, ' wenn das Programm beended wird Shell_NotifyIcon NIM_DELETE, nid End Sub Siehe auch: sevTrayIcon ActiveX Standard-Icon, Flash- oder animierte Icons Weiter Infos im Downloadbereich... Dieser Tipp wurde bereits 72.158 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
Neu! sevCommand 4.0 Professionelle Schaltflächen im modernen Design! Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Tipp des Monats März 2024 Dieter Otter UTF-8 Konvertierung von Dateien und Strings VB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |