document updated 14 years ago, on Oct 23, 2009
Things that don't affect blinking at all:
- hide window, and then show it
- hide the window; FlashWindowEx(hwnd, FLASHW_STOP); show the window
- disable UI inputs on window, re-enable
- send the window a "please redraw" message
Things that affect blinking a LITTLE bit, but don't really fix it at all
- FlashWindowEx(hwnd, FLASHW_STOP);
the current cycle of taskbar blinking is interrupted quickly, but future cycles continue unabated
- FlashWindowEx(hwnd, FLASHW_TIMER); FlashWindowEx(hwnd, FLASHW_STOP);
the current cycle of taskbar blinking is interrupted quickly, but future cycles continue unabated
Things that do seem to work, but that have notable side-effects:
- give the window focus, and then restore focus to the window that previously had focus
interrupts the user, and it can misdirect keystrokes during active typing
- hide the window, give it focus, give the original window focus, and then show it
interrupts the user, and it can misdirect keystrokes during active typing
[works for Lotus Notes IM, but doesn't work for my test app]
- add WS_EX_TOOLWINDOW to the window's ExStyle
Works, but removes the window from the Alt-Tab lineup.
Removing WS_EX_TOOLWINDOW makes the window continue blinking again.
(in AHK, it's WinSet, ExStyle, +0x80, ahk_id %hwnd%)
Things that work completely, but only on SOME apps, not all:
...
Things to try:
- use SetParent() to make the window a child of one of our windows, which should remove it from
the taskbar; then undo the action (maybe this will clear the blink flag?)
- try a COMPLETELY different course -- write a small C program that uses DLL injection to stub
out FlashWindow() and FlashWindowEx() system-wide. (both are provided by user32.dll)
- similar to the above, write a small C program that prevents any application from receiving
HSHELL_FLASH (can WH_SYSMSGFILTER do this?)