欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Explorer.exe崩溃后自动重启任务栏托盘区图标丢失

发布时间:2024/1/8 编程问答 57 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Explorer.exe崩溃后自动重启任务栏托盘区图标丢失 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

相信很多Windows用户都碰到过这种情况:运行某个程序时出现意外错误,导致外壳程序Explorer.exe崩溃而发生重启(即Explorer.exe被关闭后重新运行),任务栏也在消失后重新生成,但应用程序在通知栏添加的图标消失了,虽然这些程序仍在运行,但再也无法通过通知栏图标与用户交互。为避免这种情况出现,Windows提供了相应的机制。

在安装了Internet Explorer 4.0及以上版本的Windows操作系统中,当任务栏建立后,外壳会向所有顶层的应用程序发出通知消息,该消息是外壳以字符串“TaskbarCreated”为参数向系统注册获得的,应用程序窗口接收到该消息后就应该重新添加的通知栏图标。


解决方法:

UINT g_uTaskbarCreated = RegisterWindowMessage(TEXT("TaskbarCreated"));  //注册这样的一个消息


下面在消息处理函数中添中一个这样的判断,如果是一个重建任务栏的消息,哪么将我们的应用程序托盘重新添加上去。

if(message == g_uTaskbarCreated)
{
PAPS_GLOBAL This = Global;
Shell_NotifyIcon(NIM_ADD, &This->NotifyIconData);
}

微软官网链接:http://msdn.microsoft.com/en-us/library/windows/desktop/cc144179(v=vs.85).aspx

总结

以上是生活随笔为你收集整理的Explorer.exe崩溃后自动重启任务栏托盘区图标丢失的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。