Vor kurzem wurde hier im Forum gefragt, wie man denn die Taskleiste in VB2005 blinken lassen kann. Die folgenden 2 Codeschnippsel sind für VB6 bzw. VB.net/VB200x. Der 2. Parameter (FlashMode) gibt an, wie das Fenster blinken soll. Wenn hier die Konstante FLASHW_ALL angegeben wird, blinkt die Titelleiste des Fensters und der Eintrag in der Taskleiste, bei FLASHW_TRAY nur die Taskleiste, bei FLASHW_CAPTION nur die Titelleiste. Wenn FLASHW_STOP übergeben wird, hören Taskleiste und Titelleiste sofort auf zu blinken. Das kann z.B. verwendet werden, wenn das Fenster beim Fokus aufhören soll zu blinken.
VB6:
Folgenden Code in ein Modul packen
Um die Taskleiste bzw. die Titelleiste jetzt blinken zu lassen, genügt z.B. folgender Aufruf:
Im Anhang findet sich ein Beispiel für VB6. Das Archiv lässt sich mit 7zip und WinRAR entpacken.
VB.net/VB2005:
Folgenden Code in ein Modul packen
Hier sieht der Aufruf so aus:
Keywords: Visual Basic, VB6, VB.net, VB2005, Taskleiste blinken lassen, Titelleiste blinken lassen, FlashWindow, FlashWindowEx, FLASHWINFO, FLASHW_STOP, FLASHW_CAPTION, FLASHW_TRAY, FLASHW_ALL
VB6:
Folgenden Code in ein Modul packen
VB.NET-Quellcode
- Option Explicit
- 'API-Deklaration
- Private Declare Function FlashWindowEx Lib "user32" _
- (ByRef FWI As FLASHWINFO) As Boolean
- 'Konstanten für FlashMode
- Public Const FLASHW_STOP = 0 'Blinkvorgang beenden und zum Originalzustand zurückkehren
- Public Const FLASHW_CAPTION = &H1 'Die Titelleiste des Fensters blinken lassen
- Public Const FLASHW_TRAY = &H2 'Den Taskbar-Button des Fensters blinken lassen
- Public Const FLASHW_ALL = (FLASHW_CAPTION Or FLASHW_TRAY) 'FLASHW_CAPTION und FLASHW_TRAY werden kombiniert
- Private Type FLASHWINFO
- cbSize As Long
- hwnd As Long
- dwFlags As Long
- uCount As Long
- dwTimeout As Long
- End Type
- ' Mit dieser Funktion kann man ein Fenster blinken lassen um z.B. den Benutzer auf neue aktivität im Programm aufmerksam zu machen.
- ' Handle: Gibt den Fensterhandle an
- ' FlashMode: Gibt den Blink-Modus an (Taskleiste, Titelleiste oder beide)
- ' FlashCount: Gibt die Anzahl der Blink-Wiederholungen an
- ' Speed: Gibt die Blinkgeschwindigkeit in Millisekunden an. Wenn der Wert 0 ist wird die Standardgeschwindigkeit genommen
- Public Sub FlashWindow(ByVal Handle As Long, ByVal FlashMode As Integer, ByVal FlashCount As Integer, Optional ByVal Speed As Integer = 0)
- Dim FlashInfo As FLASHWINFO
- FlashInfo.cbSize = Len(FlashInfo)
- FlashInfo.dwFlags = FlashMode
- FlashInfo.dwTimeout = Speed
- FlashInfo.hwnd = Handle
- FlashInfo.uCount = FlashCount
- FlashWindowEx FlashInfo
- End Sub
Um die Taskleiste bzw. die Titelleiste jetzt blinken zu lassen, genügt z.B. folgender Aufruf:
Im Anhang findet sich ein Beispiel für VB6. Das Archiv lässt sich mit 7zip und WinRAR entpacken.
VB.net/VB2005:
Folgenden Code in ein Modul packen
VB.NET-Quellcode
- Private Declare Auto Function FlashWindowEx Lib "user32" _
- (ByRef FWI As FLASHWINFO) As Boolean
- ''' <summary>Den Blinkvorgang beenden und zum Originalzustand zurücksetzen</summary>
- Public Const FLASHW_STOP = 0
- ''' <summary>Die Titelleiste des Fensters blinken lassen</summary>
- Public Const FLASHW_CAPTION = &H1
- ''' <summary>Den Taskbar-Button des Fensters blinken lassen</summary>
- Public Const FLASHW_TRAY = &H2
- ''' <summary>FLASHW_CAPTION und FLASHW_TRAY werden kombiniert</summary>
- Public Const FLASHW_ALL = (FLASHW_CAPTION Or FLASHW_TRAY)
- Private Structure FLASHWINFO
- Dim cbSize As UInt16
- Dim hwnd As IntPtr
- Dim dwFlags As UInt32
- Dim uCount As UInt16
- Dim dwTimeout As UInt32
- End Structure
- ''' <summary>
- ''' Mit dieser Funktion kann man ein Fenster blinken lassen um z.B. den Benutzer auf neue aktivität im Programm aufmerksam zu machen.
- ''' </summary>
- ''' <param name="Handle">Gibt den Fensterhandle an</param>
- ''' <param name="FlashMode">Gibt den Blink-Modus an (Taskleiste, Titelleiste oder beide)</param>
- ''' <param name="FlashCount">Gibt die Anzahl der Blink-Wiederholungen an</param>
- ''' <param name="Speed">Gibt die Blinkgeschwindigkeit in Millisekunden an. Wenn der Wert 0 ist wird die Standardgeschwindigkeit genommen</param>
- Public Sub FlashWindow(ByVal Handle As Integer, ByVal FlashMode As Integer, ByVal FlashCount As Integer, Optional ByVal Speed As Integer = 0)
- Dim FlashInfo As New FLASHWINFO
- FlashInfo.cbSize = System.Runtime.InteropServices.Marshal.SizeOf(FlashInfo)
- FlashInfo.dwFlags = FlashMode
- FlashInfo.dwTimeout = Speed
- FlashInfo.hwnd = Handle
- FlashInfo.uCount = FlashCount
- FlashWindowEx(FlashInfo)
- End Sub
Hier sieht der Aufruf so aus:
Keywords: Visual Basic, VB6, VB.net, VB2005, Taskleiste blinken lassen, Titelleiste blinken lassen, FlashWindow, FlashWindowEx, FLASHWINFO, FLASHW_STOP, FLASHW_CAPTION, FLASHW_TRAY, FLASHW_ALL
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Mad Andy“ ()