任务栏按钮分组后显示的名字不同问题分析

来源:互联网 发布:淘宝天猫开店得多少钱 编辑:程序博客网 时间:2024/05/01 14:07

    运行一个程序的多个实例,如果打开了任务栏的分组相似任务栏按钮的功能,则多个实例的任务栏按钮会组合成一个按钮,有时会发现组合后的按钮名字与单个程序的标题并不相同,这是什么原因呢?

 

    如上图所示,如果开多个IE,标题就变成了“Internet Explore”,有可能组合后使用的是程序的本来名字,而不是标题,这个对如上的情况可以解释通过。如果用VC新建一个默认的程序,打开多个,这时显示的标题与单个是相同的,但是修改程序代码,将所有涉及到程序名字的资源全部改成另一个名字,再打开这个程序,单个的时候发现标题已经改变,如果打开多个则会发现标题又变成了以前的名字,以为是显示程序在磁盘上的文件名。于是改变程序名,打开多个,果然名字变成我们修改的了,这时再在程序中改变程序的名字,再打开多个,发现新修改的无效,这说明不一定与程序名有关。

    经过查找发现系统对程序名进行了缓存,第一次打开程序时会注册,以后不管怎么修改,只要程序路径和名字不变,组合后显示的都是第一次打开注册的名字,所以如上的修改尝试都失败了。注册表路径如下:“HKEY_CURRENT_USER/Software/Microsoft/Windows/ShellNoRoam/MUICache”,在这个键下面保存了所有本机打开的程序全路径名,右边的值便是这个程序对应的名字,也就是组合后显示的标题,你可以随便修改。

    后记:发现这个原理后,可以将自己的程序改得比较有特色,只有打开多个,并且组合时才会显示你设置的名字,呵呵,是不是很有趣呢。操作系统不知还有多少这样的小动作,我们要进一步挖掘。

原创粉丝点击