0

実行可能ファイルからアイコンを取得し、このアイコンを使用する新しい実行可能ファイルを ( CSharpCodeProviderを使用して) 作成する方法を探しています。

最初の部分は簡単です。

Icon icon = Icon.ExtractAssociatedIcon(path);

アイコンを「添付」したいときに問題が発生します。私は使用してみました:

compilerParameters.CompilerOptions = @"/win32icon:"

しかし、この解決策ではアイコンをファイルに書き込む必要があり、それを避けたいと思います (理由の 1 つは、16 色を超えるアイコンを保存するのが非常に面倒なことです...)。

メモリ内の System.Drawing.Icon オブジェクトを直接使用することは可能ですか?

編集: 明確にするために、C# コードを実行可能ファイルにコンパイルできるコードを取得しようとしています。この実行可能ファイルには、(Icon オブジェクトとして) メモリにのみ保持され、ファイルには (.ico ファイルとして) 保持されないアイコンがあります。

4

2 に答える 2

1

IconLibraryを使用してアイコンを保存する

Icon icon = Icon.ExtractAssociatedIcon(@"C:\Windows\System32\notepad.exe");
MultiIcon mIcon = new MultiIcon();
SingleIcon sIcon = mIcon.Add("notepad");
sIcon.CreateFrom(icon.ToBitmap(), IconOutputFormat.Vista);
sIcon.Save(@"c:\notepad.ico");

そしてそれをCompilerOptions

詳しくは

https://msdn.microsoft.com/en-us/library/2aaxe43f.aspx

于 2016-06-08T14:01:07.667 に答える
0

解決 :

誰かが同じことをしようとしている場合に備えて、期待される結果をもたらした方法を次に示します (正しいグラフィック品質でアイコンを抽出します)。

必要なアイコンを取得し、透明度のあるビットマップに変換するために、津田景友 IconExtractorを使用します。次に、@mohsen が提案した IconLibrary を使用しアイコンを .ico ファイルとして書き込み、それを CompilerOptions に埋め込みます。

于 2016-06-08T19:02:15.253 に答える