2009-07-30 30 views
4

我有生成文件的应用程序。我想用应用程序连接这些文件,以便双击文件启动我的应用程序。在.NET中注册文件类型和自定义文档图标

一切工作正常,除了烦恼的是图标看起来同样喜欢我的应用程序的图标。我想有一个应用程序图标和一个图标作为文档。在注册表

的DefaultIcon值需要 “APP.EXE,1” 语法,其中1是图标的索引。看来.NET资源不是Win32资源。

我尝试以下,但没有成功:

  1. 选择“嵌入的资源”为 文件的生成操作。
  2. 将图标添加到资源文件。

奏效唯一的事情是可执行文件,指向它分开有图标文件。但是,在我看来,就像投降一样。

任何想法如何解决这个问题?

回答

4

你有没有尝试设置2作为图标索引?

编辑: 我找到了一种方法,但你必须为每个新建立再做一次。

  1. 打开Visual Studio中的.exe文件(文件 - >打开文件)
  2. 右键单击该图标,文件夹,然后选择添加资源
  3. 点击按钮导入
  4. 选择.ico文件
  5. 您可能必须弄乱图标号码,我认为最低号码(示例101)将是应用程序的图标
  6. 请记住新的图标号并将其设置为索引

编辑2: 试试这个文章:http://www.codeproject.com/KB/dotnet/embedmultipleiconsdotnet.aspx

+0

是的,我尝试了很多数字。只有一个返回任何内容是32512.这就是我的应用程序图标。没有号码会返回文件的图标。 – 2009-07-30 00:34:16

+0

这确实有用,但它也使强名称无效。 – 2009-07-30 06:20:19

0

DefaultIcon也将接受一个有效的.ico文件作为图标的路径。

0

你必须确保你有Win32的图标在您的项目不只是.NET的图标。我希望有人指出一个简单的方法来做到这一点,但同时,在这里...

编译您的程序集,然后从Visual Studio中选择“文件 - >打开 - >打开文件”,打开编译汇编。添加您想要用于文档的图标,并将其ID设置为应用程序中使用的图标之上的某个图标。保存程序集。现在你有Win32资源可用。

- 编辑 -
编辑后,他的帖子ZippyV似乎有一个非常好的答案。

1

如果您使用的是维克斯工具集(http://www.wixtoolset.org)安装应用程序,你可以得到维克斯照顾的文件类型和文件图标注册

这里是我的魔维克斯咒语:

<!-- Your executable --> 
    <File 
     Id="MaAppExe" 
     Name="MyApp.exe" 
     Source="MyApp.exe" KeyPath="yes" > 
    </File> 

    <!-- your document icon --> 
    <File 
     Id='IconMyAppDoc.ico' 
     Name='IconMyAppDoc.ico' 
     Source='$(var.MyApp.ProjectDir)\Resources\Images\Icons\docicon.ico' /> 

    <-- File Extension and associated document icon --> 
    <ProgId 
     Id='MyApp.MyAppExtension' 
     Description='My App Data File' 
     Icon='IconMyAppDoc.ico'> 
     <Extension 
      Id='MyApp' 
      ContentType='text/plain'> 
      <Verb 
       Id='open' 
       Command='Open' 
       TargetFile="MyAppExe" 
       Argument='"%1"' /> 
     </Extension> 
    </ProgId> 
</Component> 
相关问题