2009-07-30 10 views
4

私はファイルを生成するアプリケーションを持っています。これらのファイルをアプリケーションと接続して、ファイルをダブルクリックするとアプリケーションが起動するようにしたいと思います。.NETでのファイルタイプとカスタムドキュメントアイコンの登録

すべてはアイコンが自分のアプリケーションのアイコンのように同じに見える迷惑を除き正常に動作します。私は1つのアプリケーションのアイコンと1つのアイコンをドキュメントとして持っていたいと思います。レジストリ内

DefaultIcon値は1がアイコンインデックスである "app.exeの、1" 構文が必要です。 .NETリソースはWin32リソースではないようです。

私は、次の試みたが成功せず:

  1. は ファイルのビルドアクションとして「埋め込まれたリソース」を選択します。
  2. リソースファイルにアイコンを追加しています。働い

だけの事は実行可能ファイルと、それを指しているから分離したアイコンファイルです。しかし、それは降伏が好きなようです。

これを解決する方法はありますか?

答えて

4

を使用すると、アイコンインデックスとして2を設定しようとしたことがありますか?

EDIT: 私は道を見つけましたが、あなたはすべての新しいビルドのために再びそれをしなければなりません。

  1. オープンVisual Studioで.exeファイル(ファイル - >ファイルを開く)
  2. 右ボタンの[インポート]をクリックし、リソース
  3. 追加アイコンフォルダをクリックして選択し
  4. は、あなたの.icoファイルを選択して
  5. アイコン番号を混乱させる必要があるかもしれませんが、最低番号(例101)はアプリケーションのアイコンになると思います。
  6. 新しいアイコンの番号を覚えていて、インデックスとして設定してください。

EDIT 2: この記事をお試しください:http://www.codeproject.com/KB/dotnet/embedmultipleiconsdotnet.aspx

+0

はい、私はかなりの数を試しました。何かを返すのは32512だけです。それが私のアプリケーションアイコンです。番号はドキュメントのアイコンを返します。 –

+0

これは動作しますが、strong-nameも無効になります。 –

0

DefaultIconもアイコンとして有効な.icoファイルへのパスを受け入れます。

+0

私の質問で指摘したように、それは動作しますが、それは正しいように見えません。 –

0

プロジェクトにWin32アイコンがあることを確認する必要があります。私は、誰かがこれを行う簡単な方法を指摘していることを願っていますが、その間にここでは...

あなたのアセンブリをコンパイルし、Visual Studioから "ファイル - >開く - >ファイルを開く"を選択し、コンパイルされたアセンブリ。ドキュメントに使用するアイコンを追加し、そのIDをあなたのアプリで使用されているアイコンの上に設定します。アセンブリを保存します。これでWin32のリソースが利用できるようになりました。

- 編集 -
彼の投稿を編集した後、ZippyVは非常に良い答えがあるようです。

1

、あなたのアプリケーションをインストールするのWiXツールセット(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> 
関連する問題