exe不能托盘exe打不开怎么办办

explorer.exe崩溃后恢复托盘图标 - 诡影苍穹的专栏
- 博客频道 - CSDN.NET
1666人阅读
今天遇到一个编程上的问题,程序需要用到托盘图标,但是图标有时会莫名其妙从托盘上消失,但在任务管理器中查看该进程却是存在的,因为程序没有加快捷键,所以该程序的窗口没有办法再唤出来,只有从任务管理器里杀死再重启。测试部认为这是一个非常大的bug,将等级定在五个星。下午在网上查了很久资料,看到csdn上有讲,这是因为explorer.exe的崩溃造成的,当explorer.exe崩溃后,它会再次重新启动,重新启动后,它会重绘桌面、开始菜单、任务栏。如果任务栏的托盘程序处理了操作系统发来的TaskbarCreated消息,自己重新绘制的话,托盘上的图标会再次出现。就像msn一样,但QQ却不会,如果explorer.exe崩溃了,QQ在托盘上是看不到的,但因为它有快捷键,所以还是能对它进行操作的。&
上面是具体问题的描述,下面来说说解决的办法。我用的是vc++6.0编的程序,所以这里也只说vc的解决方法,首先要定义一个Windows系统消息,const&UINT&WM_ADDICON_TOTASKBAR&=&::RegisterWindowMessage(_T(&TaskbarCreated&));这个消息即是explorer.exe重绘任务栏时发给程序的消息。再将该消息加入宏映射表,&
ON_REGISTERED_MESSAGE(WM_ADDICON_TOTASKBAR,&OnAddIconToTaskbar)&
需要注意的是,这里用的是REGISTERED_MESSAGE,如果这里写得不对,也是不行的。然后要定义消息处理的函数,这里的函数定义也需要注意要定义成类似afx_msg&LRESULT&OnAddIconToTaskbar(WPARAM&wParam,&LPARAM&lParam),这里如果不写成LRESULT而写成void,编绎可能通不过。而且如果不加WAPARAM和LPARAM编绎也可能通不过。&
最后需要说明的是,在这个OnAddIconToTaskbar函数里面,需要重新做一次往托盘添加图标的过程。&
& 防止托盘区图标无故消失&
很多细心的用户都会发现,由于Explorer.exe出错常常导致自己放到托盘区的图标无故消失,而程序仍然在运行的情况。导致这种现象的原因是你的程序考虑不够周到。其实这个现象是完全可以避免的,下面将详细讲述解决方案。&
&&&&先说明一下出现这个现象的原因。当Explorer.exe出错重启时,任务栏(包括托盘区)将重建,而此时应用程序必须自己将图标放到托盘区去,否则该图标就会消失。虽然这是一种异常情况,但一个优秀的应用程序还是应该考虑到这种异常的。&
&&&&由上述原因可知,只要能够在任务栏重建时能够得到通知就可以解决这个问题了。幸运的是,如果你的计算机安装了IE4以上版本(这个大家应该都有吧)就可以得到通知了,当任务栏建立的时候,系统会以“TaskbarCreated”注册一个全局消息,并广播这个消息。这样我们只要在应用程序里也以“TaskbarCreated”注册一个消息,当收到这个消息的时候,我们就知道任务栏已经重建,应该画图标了。&
&&&&程序就比较简单了,这里只写一个示例代码。用SDK写的,如果用VCL,可以重载一下WindowProc。&
LRESULT&CALLBACK&WndProc(HWND&hWnd,&UINT&uMessage,&WPARAM&wParam,&&
&&&&LPARAM&lParam)&
static&UINT&s_uTaskbarR&
switch(uMessage)&
&&&&case&WM_CREATE:&
&&&&&&&&s_uTaskbarRestart&=&RegisterWindowMessage(TEXT(&TaskbarCreated&));&
&&&&default:&
&&&&&&&&if(uMessage&==&s_uTaskbarRestart)&
&&&&&&&&&&&&AddTaskbarIcons();//这个就是往托盘区画图标的函数,需要自己写。&
return&DefWindowProc(hWnd,&uMessage,&wParam,&lParam);&
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:44423次
排名:千里之外
原创:13篇
转载:26篇
评论:23条
(3)(3)(2)(1)(5)(9)(1)(2)(2)(1)(1)(1)(4)(4)(2)关闭OSD.exe这个进程,什么功能就不能用了?_百度知道
关闭OSD.exe这个进程,什么功能就不能用了?
脑是HP台式机,照样可以用……那这个进程具体体现在什么功能上呢,别拿病毒什么的忽悠我,又觉得可能和显示器的MENU菜单有关.exe这个进程是托盘工具条用于显示器设定的,但看了一下托盘里没有,查了一下OSD?或者说关闭此进程什么功能不能用了对了,但关闭此进程
我有更好的答案
osd.exe:这只是一个后台程序,看不到图标界面的!但OSD是on-screen display的简称,即屏幕菜单式调节方式。一般是按Menu键后屏幕弹出的显示器各项调节项目信息的矩形菜单,可通过该菜单对显示器各项工作指标包括色彩、模式、几何形状等进行调整,从而达到最佳的使用状态。  
进程文件: osd 或者 osd.exe   进程名称: OnScreen Display System Tray icon   描述:   osd.exe是托盘工具条用于显示器设定。   出品者: Netropa Corporation   属于: Netropa OnScreen Display   系统进程: 否   后台程序: 是   使用网络: 否   硬件相关: 否   常见错误: 未知N/A   内存使用: 未知N/A   安全等级 (0-5): 0   间谍软件: 否   广告软件: 否   广告软件: 否   木马...
托盘没有?这个进程osd.exe是托盘工具条用于显示器设定的,用于快速的设定显示器的菜单,关闭它也就是菜单没了,没有什么特别的,占用一定资源,但也不是太大,完全可以关掉,另外这个进程是病毒的可能性暂时很小,
其他类似问题
osd的相关知识
等待您来回答
为您推荐:
下载知道APP
随时随地咨询
出门在外也不愁如何让一个exe图标到托盘显示_百度知道
如何让一个exe图标到托盘显示
我有更好的答案
任务栏右键属性--勾选隐藏不活动图标--自定义--找到需要隐藏那个程序设置总是隐藏
其他类似问题
图标的相关知识
等待您来回答
为您推荐:
下载知道APP
随时随地咨询
出门在外也不愁Task Killer – 从系统托盘终止进程/服务
Task Killer – 从系统托盘终止进程/服务
0.00 / 5 5
Task Killer 让你可以在系统托盘结束进程,左键点击图标,就会列出程序/系统服务列表,点击结束。Task Killer 可设置例外程序,修改快捷键,有中文界面
从上图可以看到二狗的 Chrome 内存占用很壮观,不过二狗的内存观是:只要感觉不到系统整体速度被拖慢,那么内存爱占用多少占用多少!
Task Killer 已经很多年没有更新了,但仍然支持 Win7。
(181.6 KB):
推荐两款可爱的 Windows7 主题:
喜欢这篇文章?
按分类查看文章:
大家都在讨论些什么
: @smy20011
不会用啊: 真的非常好用,很小很方便。: 这个东西好!: 貌似很好用!: @北京热
看来你不懂,那种正规论坛之类的被人恶意上传黄图,不得不请鉴黄师删帖的事情吧。: 迅雷和快播可以转型试水一下,搞一个发包平台,提供人工鉴黄云服务,从中抽取利润,形成“付费扫黄--看片赚钱”的产业链。: 毫不留情d-dos之
最热门标签
传说中的小众软件 这里分享免费、小巧、实用、有趣、绿色的软件。
个人 blog 转载时请遵循 “署名-非商业性使用-相同方式共享” 的创作共用协议;
商业网站或未授权媒体不得复制本站内容。

我要回帖

更多关于 ctfmon.exe损坏怎么办 的文章

 

随机推荐