关于快捷方式

老早就发现 Windows 下的快捷方式有些玄妙,最奇怪的莫过于有的快捷方式的属性页里,“目标”编辑框、“查找目标”和“更改图标”按钮被禁用。那个“查找目标”按钮是我经常要用到的(附注,此功能在 Vista 里好像被直接加入到了关联菜单里,可见确实是一个常用功能,不止是我个人),如果遇上这类快捷方式,只能是徒叹奈何。如果你安装了 Microsoft Office 2003 或者 2007,不妨看一下开始菜单里的快捷方式的属性,一定如我所说。

其实不止 Office,还有很多别的程序也一样。后来才知道,但凡是由 Windows Installer 创建出来的快捷方式,都是这个样子。一度想弄明白,既然目标程序还能正常被运行起来,显然有一些信息被藏起来了,这些信息放在哪里呢?要是能找到的话,也就可以搞快捷方式所指的目标了。翻遍了 MSDN 中对 IShellLink 接口的介绍,也没找到任何相关的信息。今天无意之中看到了另一个接口的名字,为 IShellLinkDataList,直觉意识到可能和我长久不明白的这一问题有关。一看文档,果然,这个接口可以存取和快捷方式相关联的额外数据,其中就有一种是 Windows Installer 所使用的。

网上关于这个接口的讨论不多,可以参考的链接有:
http://www.eggheadcafe.com/forumarchives/platformsdkshell/Sep2005/post23527910.asp
http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_20943881.html
http://groups.google.co.uk/group/microsoft.public.platformsdk.shell/browse_thread/thread/9cd0d1ff4570fed0

此外,今天还解开了另一个有关屏幕放大镜技术的疑团,甚为高兴。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注