Type a page name and press Enter. You'll jump to the page if it exists, or you can create it if it doesn't.
To create a page in a module other than user32, prefix the name with the module name and a period.
[StructLayout(LayoutKind.Sequential)]
public struct FLASHWINFO
{
public UInt32 cbSize;
public IntPtr hwnd;
public UInt32 dwFlags;
public UInt32 uCount;
public UInt32 dwTimeout;
}
public enum FlashWindow : uint
{
/// <summary>
/// Stop flashing. The system restores the window to its original state.
/// </summary>
FLASHW_STOP = 0,
Notes:
//Stop flashing. The system restores the window to its original state.
public const UInt32 FLASHW_STOP = 0;
//Flash the window caption.
public const UInt32 FLASHW_CAPTION = 1;
//Flash the taskbar button.
public const UInt32 FLASHW_TRAY = 2;
//Flash both the window caption and taskbar button.
//This is equivalent to setting the FLASHW_CAPTION | FLASHW_TRAY flags.
public const UInt32 FLASHW_ALL = 3;
//Flash continuously, until the FLASHW_STOP flag is set.
public const UInt32 FLASHW_TIMER = 4;
//Flash continuously until the window comes to the foreground.
public const UInt32 FLASHW_TIMERNOFG = 12;
/// <summary>
/// Flash both the window caption and taskbar button.
/// This is equivalent to setting the FLASHW_CAPTION | FLASHW_TRAY flags.
/// </summary>
FLASHW_ALL = 3,
/// <summary>
/// Flash continuously, until the FLASHW_STOP flag is set.
/// </summary>
FLASHW_TIMER = 4,
/// <summary>
/// Flash continuously until the window comes to the foreground.
/// </summary>
FLASHW_TIMERNOFG = 12
}
Notes:
Tips & Tricks:
Please add some!
Sample Code:
/// <summary>
/// Flashes a window
/// </summary>
/// <param name="hWnd">The handle to the window to flash</param>
/// <returns>whether or not the window needed flashing</returns>
public static bool FlashWindowEx(IntPtr hWnd)
{
FLASHWINFO fInfo = new FLASHWINFO();
/// Minor adjust to the code above
/// <summary>
/// Flashes a window until the window comes to the foreground
/// Receives the form that will flash
/// </summary>
/// <param name="hWnd">The handle to the window to flash</param>
/// <returns>whether or not the window needed flashing</returns>
public static bool FlashWindowEx(Form frm)
{
IntPtr hWnd = frm.Handle;
FLASHWINFO fInfo = new FLASHWINFO();
Private Declare Function FlashWindowEx Lib "User32" (ByVal fwInfo As FLASHWINFO) As Boolean
#Region " Flash Window Routines"
' As defined by: http://msdn.microsoft.com/en-us/library/ms679347(v=vs.85).aspx
Public Enum FlashWindowFlags As UInteger
' Stop flashing. The system restores the window to its original state.
FLASHW_STOP = 0
' Flash the window caption.
FLASHW_CAPTION = 1
' Flash the taskbar button.
FLASHW_TRAY = 2
' Flash both the window caption and taskbar button.
' This is equivalent to setting the FLASHW_CAPTION | FLASHW_TRAY flags.
FLASHW_ALL = 3
' Flash continuously, until the FLASHW_STOP flag is set.
FLASHW_TIMER = 4
' Flash continuously until the window comes to the foreground.
FLASHW_TIMERNOFG = 12
End Enum
Private Declare Function FlashWindowEx Lib "User32" (ByRef FWInfo As FLASHWINFO) As Int32
Public Structure FLASHWINFO
Public cbSize As Long
Public hwnd As Long
Public dwFlags As FlashWindowFlags
Public uCount As Long
Public dwTimeout As Long
End Structure
Private Const FLASHW_STOP As Int32 = 0
Private Const FLASHW_CAPTION As Int32 = &H1&
Private Const FLASHW_TRAY As Int32 = &H2&
Private Const FLASHW_ALL As Int32 = FLASHW_CAPTION Or FLASHW_TRAY
Private Const FLASHW_TIMER As Int32 = &H4&
Private Const FLASHW_TIMERNOFG As Int32 = &HC&
Public Function FlashWindow(ByRef frm As Windows.Forms.Form) As Boolean
Return FlashWindow(frm, True, True, 5)
End Function
Public Function FlashWindow(ByRef frm As Windows.Forms.Form, ByVal FlashTitleBar As Boolean, ByVal FlashTray As Boolean) As Boolean
Return FlashWindow(frm, FlashTitleBar, FlashTray, 5)
End Function
Public Function FlashWindow(ByRef frm As Windows.Forms.Form, ByVal FlashCount As Integer) As Boolean
Return FlashWindow(frm, True, True, FlashCount)
End Function
Public Function FlashWindow(ByRef frm As Windows.Forms.Form, ByVal FlashTitleBar As Boolean, ByVal FlashTray As Boolean, ByVal FlashCount As Integer) As Boolean
If frm Is Nothing Then Return False
If frm.IsDisposed Then Return False
If frm.Handle = 0 Then Return False
Private Structure FLASHWINFO
Dim cbSize As Int32
Dim hwnd As IntPtr
Dim dwFlags As Int32
Dim uCount As Int32
Dim dwTimeout As Int32
End Structure
Try
Dim fwi As New FLASHWINFO
With fwi
.hwnd = frm.Handle
If FlashTitleBar Then .dwFlags = .dwFlags Or FlashWindowFlags.FLASHW_CAPTION
If FlashTray Then .dwFlags = .dwFlags Or FlashWindowFlags.FLASHW_TRAY
.uCount = FlashCount
If FlashCount = 0 Then .dwFlags = .dwFlags Or FlashWindowFlags.FLASHW_TIMERNOFG
.dwTimeout = 0 ' Use the default cursor blink rate.
.cbSize = System.Runtime.InteropServices.Marshal.SizeOf(fwi)
End With
Public Shared Function FlashWindow(ByRef frm As Form) As Int32
Return FlashWindow(frm, True, True, 5)
End Function
Public Shared Function FlashWindow(ByRef frm As Form, ByVal FlashTitleBar As Boolean, ByVal FlashTray As Boolean) As Int32
Return FlashWindow(frm, FlashTitleBar, FlashTray, 5)
End Function
Public Shared Function FlashWindow(ByRef frm As Form, ByVal NumTimes2Flash As Integer) As Int32
Return FlashWindow(frm, True, True, NumTimes2Flash)
End Function
Public Shared Function FlashWindow(ByRef frm As Form, ByVal FlashTitleBar As Boolean, ByVal FlashTray As Boolean, ByVal NumTimes2Flash As Integer) As Int32
Try
Dim fwi As New FLASHWINFO
With fwi
.cbSize = System.Runtime.InteropServices.Marshal.SizeOf(fwi)
.hwnd = IIf(frm Is Nothing, 0, frm.Handle)
If FlashTitleBar Then .dwFlags = .dwFlags Or FLASHW_CAPTION
If FlashTray Then .dwFlags = .dwFlags Or FLASHW_TRAY
.uCount = NumTimes2Flash
.dwTimeout = 250
End With
Return FlashWindowEx(fwi)
Catch
Return False
End Try
End Function
Return FlashWindowEx(fwi)
Catch
Return -1
End Try
End Function
#End Region
The FlashWindowEx API
2/21/2014 11:20:56 AM - KDERazorback (kderazorback.emule@hotmail.com)-190.77.130.128
The FlashWindowEx API
2/21/2014 11:20:56 AM - KDERazorback (kderazorback.emule@hotmail.com)-190.77.130.128
Please edit this page!
Do you have...
helpful tips or sample code to share for using this API in managed code?
corrections to the existing content?
variations of the signature you want to share?
additional languages you want to include?
Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing supporting types needed for this API (structures, delegates, and more).