windows - 当新消息到达时,如何使任务栏像 Messenger 一样使我的应用程序闪烁?

标签 windows winapi

是否有 .NET 中的 API 调用或 native DLL 可用于在与我聊天的人响应时创建与 Windows Live Messenger 类似的行为?

最佳答案

FlashWindowEx 是必经之路。参见 here for MSDN documentation

[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool FlashWindowEx(ref FLASHWINFO pwfi);

[StructLayout(LayoutKind.Sequential)]
public struct FLASHWINFO
{
    public UInt32 cbSize;
    public IntPtr hwnd;
    public UInt32 dwFlags;
    public UInt32 uCount;
    public UInt32 dwTimeout;
}

public const UInt32 FLASHW_ALL = 3; 

调用函数:

FLASHWINFO fInfo = new FLASHWINFO();

fInfo.cbSize = Convert.ToUInt32(Marshal.SizeOf(fInfo));
fInfo.hwnd = hWnd;
fInfo.dwFlags = FLASHW_ALL;
fInfo.uCount = UInt32.MaxValue;
fInfo.dwTimeout = 0;

FlashWindowEx(ref fInfo);

这是无耻地从Pinvoke.net插入的

关于windows - 当新消息到达时,如何使任务栏像 Messenger 一样使我的应用程序闪烁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73162/

相关文章:

c++ - 如何运行需要提升并等待的子进程?

c# - 如何找到应用程序的起始地址以进行内存编辑进程?

windows - 错误 1920 服务启动失败。确认您有足够的权限启动系统服务

python - 在 wxPython 中进行拖放的 OLE 方式

.net - 如何获取调用进程 Windows 用户访问 token

c# - 从 Windows 应用程序的文本框中抓取文本

windows - 如何将 SHCreateItemFromParsingName 与 shell 命名空间中的名称一起使用?

windows - WMI 备忘单?

windows - TortoiseSVN - 全局忽略模式不适用于 thumbs.db

windows - mkdir 仍然是原子的吗? (安装在 SAN 上的 Windows 7 文件系统)