热情软件屋

 

如何建立文件关联


编号: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中的资源号。

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio