2009-07-30 28 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> 
相關問題