誰かが簡単で簡単なコードスニペットを表示できますか?入力として.exeという名前をとり、.icoファイルを出力する必要があります。短い方が良いですし、バイナリはお勧めしません。このような単純な作業のようですが、私が見つけた唯一のコードは非常に肥大しているようです。ありがとう!.exeからアイコンを抽出する簡単なコード
1
A
答えて
4
実際にはWin32のほとんどのものと同様に簡単ですが、それは簡単ではありません。特に、このコードベースの全体は、実際には本当に古くなっていると感じています...それを操作するのは王の痛みです。これを悪化させるのは、ファイルごとに複数のアイコンサイズがあり、ファイルごとにサイズごとに複数のアイコンがあるという事実です。
ここでは、必要なものがたくさんありますが(すべてではない)、古いコードがあります。
いくつかのセットアップ:
static const int _MAX_ICONS = 2;
typedef struct INTERNAL_ICON_INFO
{
HICON hIcon;
int nSize;
} INTERNAL_ICON_INFO;
typedef struct TAG_ICON_BUNDLE_DETAILS
{
int nLargeIcons;
INTERNAL_ICON_INFO aiiLargeIcons[_MAX_ICONS];
int nSmallIcons;
INTERNAL_ICON_INFO aiiSmallIcons[_MAX_ICONS];
} ICON_BUNDLE_DETAILS;
アイコン抽出コード:要するに
HINSTANCE hTargetModule = LoadLibrary((LPCTSTR)stTargetFile);
if (NULL != hTargetModule)
{
int nIconCount = ExtractIconEx((LPCTSTR)stTargetFile, -1, NULL, NULL, 0); // get total icon count
ICON_BUNDLE_DETAILS* priiArray = new ICON_BUNDLE_DETAILS[nIconCount];
int nExtracted = 0;
for (int i = 0; i < nIconCount; i++)
{
HICON* phiLargeIcons = new HICON[nIconCount];
HICON* phiSmallIcons = new HICON[nIconCount];
nExtracted = ExtractIconEx((LPCTSTR)stTargetFile, i, phiLargeIcons, phiSmallIcons, _MAX_ICONS);
for (int j = 0; j < nExtracted; j++)
{
ICONINFO ii;
GetIconInfo(phiLargeIcons[j], &ii);
priiArray[i].nLargeIcons = nExtracted;
priiArray[i].aiiLargeIcons[j].hIcon = phiLargeIcons[j];
priiArray[i].aiiLargeIcons[j].nSize = sizeof(ICONINFO);
}
for (j = 0; j < nExtracted; j++)
{
priiArray[i].nSmallIcons = nExtracted;
priiArray[i].aiiSmallIcons[j].hIcon = phiSmallIcons[j];
priiArray[i].aiiSmallIcons[j].nSize = sizeof(ICONINFO);
}
}
if (nExtracted > 0)
{
// process extracted icons
}
}
、このコードこれは、EXEファイルを割れやアイコンそのものであなたを取得することにより、あなたの方法にもあなたを取得する必要がありますターゲットファイルを開き、そこにいくつのアイコンが含まれているかを数え、各ICONINFOの各インスタンスに関する情報を取得します。それはビットマップ自体を含んでいるので、あなたが気にしていると思う構造体です。
ICONINFOから新しい.icoファイルへの移行は、私たちが必要としていたものではなかったため、その部分を手助けすることはできません...しかし、どれくらい難しいでしょうか? ;-)
幸運!
Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles Me.Load
Me.Icon = Icon.ExtractAssociatedIcon(My.Application.Info.DirectoryPath
& "\" & My.Application.Info.AssemblyName & ".exe")
End Sub
0
私はこれを見つけましたか?
関連する問題
- 1. Ubuntu LinuxでEXEアイコンを抽出する
- 2. .exeファイルから.bmpを抽出する
- 3. 簡単な行と列の抽出、numpy
- 4. ダウンロードしたHTMLファイルからメタタグを抽出する最も簡単な方法
- 5. UWPアプリケーションからアイコンを抽出
- 6. ファイルから単語を抽出する
- 7. オーディオクリップから単語を抽出する
- 8. ファイルから単語を抽出する
- 9. EXE抽出/逆コンパイラ
- 10. ネストされたコレクションからデータを簡単に抽出するには?
- 11. コマンドラインからexeファイルを抽出する方法
- 12. コマンドラインでCOM EXEからTypeLibを抽出する方法
- 13. HTMLコードからデータを抽出する
- 14. 「非常に簡単な」CDNから画像をダウンロードするコード
- 15. 自己抽出PEを作る最も簡単な方法は何ですか?
- 16. C++を使用して.exe/.dllなどのバイナリファイルからテキストを抽出する
- 17. スタンドアロンでファイルを抽出するexe - C#
- 18. スーパークラスのパブリックメソッドを含む、Javaクラスからインタフェースを抽出する簡単な方法はありますか?
- 19. バイナリからアイコンを抽出するためのC/C++ライブラリ
- 20. iPhone SDKからUIBarButtonItemアイコンを抽出するには?
- 21. pikaからキューを抽出する最も簡単な方法はどれですか?
- 22. イメージからテキストを抽出する最も簡単な方法は何ですか?
- 23. 複合(混合)文から簡単な文を抽出するアルゴリズムはありますか?
- 24. Microsoft DynamicJsonObjectからJSON文字列を抽出する簡単な方法は何ですか?
- 25. matlabでこの文字列からデータを抽出する最も簡単な方法は何ですか?
- 26. ChiselコードからVerilogコードを生成する最も簡単な方法
- 27. pdfから大胆な単語を抽出する
- 28. 人間のシルエット抽出(python、opencv)の簡単な実装方法
- 29. pqxx簡単なコードは
- 30. 通話クラス*簡単なコード*
言語/技術: – Noldorin
すべての言語。うまくいくものを探しています。 :) – Lin