代码之家  ›  专栏  ›  技术社区  ›  Josip Medved

在.NET中注册文件类型和自定义文档图标

  •  4
  • Josip Medved  · 技术社区  · 16 年前

    我有生成文件的应用程序。我想将这些文件与应用程序连接起来,以便双击“文件”启动我的应用程序。

    一切正常,除了烦恼,图标看起来和我的应用程序的图标一样。我想要一个应用程序图标和一个文档图标。

    注册表中的DefaultIcon值需要“app.exe,1”语法,其中1是图标索引。似乎.NET资源不是win32资源。

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

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

    唯一有效的方法是将图标文件与可执行文件分开并指向它。然而,在我看来,这似乎是投降。

    有什么解决办法吗?

    4 回复  |  直到 10 年前
        1
  •  4
  •   ZippyV    16 年前

    是否尝试将2设置为图标索引?

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

    1. 在Visual Studio中打开.exe文件(文件->打开文件)
    2. 右键单击图标文件夹并选择添加资源
    3. 单击“导入”按钮
    4. 选择.ico文件
    5. 您可能需要处理图标号,我认为最低的数字(示例101)将是应用程序的图标。
    6. 记住新图标号并将其设置为索引

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

        2
  •  1
  •   migueldc    10 年前

    如果使用WIX工具集( http://www.wixtoolset.org )要安装应用程序,可以让wix负责文件类型和文档图标注册。

    这是我的魔法巫术咒语:

        <!-- 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>
    
        3
  •  0
  •   Factor Mystic    16 年前

    DefaultIcon 还将接受指向有效.ico文件的路径作为图标。

        4
  •  0
  •   Brad Bruce    16 年前

    您必须确保项目中有Win32图标,而不仅仅是.NET图标。我希望有人能指出一个简单的方法,但同时,这就是…

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

    --编辑——
    在编辑了他的文章之后,Zippyv似乎有了一个很好的答案。

    推荐文章