功能
TrayIconMan可以列举系统托盘区中的图标,提示文本,及它们对应的程序,并控制它们的显示和隐藏状态。
有些网友反映,在windows xp 使用TrayIconMan来隐藏系统托盘图标,图标只是被转到不活动的区域,并没有真正地从托盘区消失。
研究发现在启用了任务栏属性中“隐藏不活动的图标”功能的电脑中会出现此情况。
解决方法有两种:
一种方法是停用“隐藏不活动的图标”功能
另一种方法是启用了“隐藏不活动的图标”功能后,把需要让其从托盘区消失的图标设置为“总是显示”
再用TrayIconMan就可以让相关图标在托盘区隐藏起来了……
下载地址
http://download.youkuaiyun.com/detail/purpleendurer/4071240
http://purpleendurer.ys168.com/(\myworks\tools中)
0.0.0.3的改进
修正了0.0.0.2版中所显示系统托盘图标对应进程文件说明符中盘符可能不正确的问题。
问题分析
TrayIconMan在Windows XP运行时,会尝试使用GetProcessImageFileName来获取系统托盘图标对应进程文件说明符。返回的对应文件说明符的形式是\Device\HardDiskVolume1\Windows\System32\svchost.exe,在转换成C:\Windows\System32\svchost.exe这样的格式时,0.0.0.2使用的代码为:
pushsizeofszProcImage
leaeax,szProcImage
pusheax
pushhProc
callg_lpfnGetProcessImageFileName
testeax,eax
jz@GetProcImgFileSpecRet;fail
leaeax,szProcImage
invokelocatePathName;定位文件路径名的首位置存在ebx中,如\Windows\System32\svchost.exe
pusheax;文件路径名的首位置在eax中,pushforcalllstrcpy()
;定位到\Device\HardDiskVolume1
deceax
;取最后的数字计算盘符
moval,byteptr[eax]
subal,'1'-'C'
movah,':'
movwordptrg_szProcSpec,ax
push(offsetg_szProcSpec)+2
;moveax,offsetg_szProcSpec
;inceax
;inceax
;pusheax
calllstrcpy
这个方法在大多数情况下是正确的,但如果系统中存在没有分配盘符的分区的话,那就符盘就可能不正确了。
在0.0.0.3中改用QueryDosDevice()来精确转换。
附:微软官网对于获取进程对应文件说明符的 best results:
For the best results use the following table to convert paths.
Windows 2000 = GetModuleFileName()
Windows XP x32 = GetProcessImageFileName()
Windows XP x64 = GetProcessImageFileName()
Windows Vista = QueryFullProcessImageName()
Windows 7 = QueryFullProcessImageName()
Note: If you are not aware the API GetProcessImageFileName() returns a kernel DOS device path. You can use the following API to map the device paths to a Win32 format.
引自:http://msdn.microsoft.com/en-us/library/windows/desktop/ms684919(v=vs.85).aspx
文件信息
文件说明符 : F:\MASM32\pe-works\TrayIconMan\TrayIconMan.exe
属性 : A---
数字签名:否
PE文件:是
语言 : 中文(中国)
文件版本 : 0.0.0003
说明 : TrayIconMan | 系统托盘图标管理员
版权 : PurpleEndurer
产品版本 : 0.0.0003
产品名称 : TrayIconMan
公司名称 : PurpleEndurer | 紫郢剑侠㊣
合法商标 : PurpleEndurer
内部名称 : TrayIconMan
源文件名 : TrayIconMan
创建时间 : 2012-2-17 21:7:20
修改时间 : 2012-2-17 22:5:22
大小 : 8704 字节 8.512 KB
MD5 : d7b0c3b62155b15543fa87a456ca34bf
SHA1: 9BEB81EFAA04A69CF02713D7766FF9BAD62EBA83
CRC32: 8ffff234
本文详细介绍了如何解决在Windows XP系统中使用TrayIconMan隐藏系统托盘图标时出现的问题。通过两种方法:停用“隐藏不活动的图标”功能或设置图标为“总是显示”,使相关图标能够在托盘区隐藏。同时提供了TrayIconMan的下载链接和版本更新信息。
1791

被折叠的 条评论
为什么被折叠?



