如何建立文件关联
编号:QA000533
建立日期: 1999年2月17日 最后修改日期:2002年12月22日
所属类别:
DD:
VB5
PW98
请问怎样才能能实现象ACDSEE、WIN ZIP那样,用户双击带有自己定义的后缀名的文件时,自动进入自己的软件并按格式打开该文件?
回答:
实际上ACDSee和WinZip都修改了系统注册表,所有关联信息都在HKEY_CLASS_ROOT键下。使用RegEdit可以看到这点。比如,ACDSee与GIF文件的关联。在HKEY_CLASS_ROOT\.gif下你可以看到默认值ACDC_GIF,再找到HKEY_CLASS_ROOT\ACDC_GIF,其默认值为ACDSee GIF Image。在这个键下有Shell\Open\Command,其值为"g:\WinTool\ACDSee95\ACDSee32.exe" /v。这就是调用ACDSee的命令行。只要在系统注册表中加上类似的几项就可以建立文件关联了。你可以先使用资源管理器建立新的文件关联,然后使用RegEdit将相关的几项输出到*.reg文件中,每次安装软件时执行regedit <filename>.reg就可以了。你也可以使用VB程序直接将这些信息写入用户的机器。关于在VB中读写系统注册簿,你可以参考QA000226 "如何访问Windows系统注册表"。
此外,你的程序必须支持命令行参数,因为Windows会把用户选择的文件名作为命令行参数传递给你的程序。VB的Command函数可以读取命令行参数(参考QA000595 "如何在VB中加入命令行参数")。这里有一个例子:
associate.zip。
davis问:您好,我是一名VB爱好者,前不久我在您的网站上看到一篇关于文件关联的文章,对我受益很大,由此我又想到另外一个问题,就是当一个文件与应用程序相关连后,如何改变文件的默认图标(我想把它换成我自己的图标)?
答:还是以上面的GIF文件为例,在HKEY_CLASS_ROOT\ACDC_GIF下面建立一个新键DefaultIcon,修改它的默认值。如:I:\Program Files\Microsoft Visual Studio .NET\Vc7\vcpackages\VCProject.dll,-9。其中前面是DLL或EXE的全路径,逗号后面是图标在DLL或EXE中的资源号。
此问题由李海回答。
| |
|
|
| |
|
|