Windowsの実行可能ファイルからアイコンを抽出したいとします。私は、Visual Studioでそれを開いて、そのアイコンのIDを取得することができます:ExtractIconとExtractAssociatedIconの違いは?特定のサイズのアイコンを抽出する必要があります
それから私は、48×48サイズのアイコンに興味があるでしょう:
だから私の仮定を行うことでした。
HICON hIcons[4];
::ExtractIconEx(L"mstsc.exe", -13011, hIcons, NULL, 4);
hIconLogo = hIcons[3];
が、私はそれを実行すると、メソッドが返すのみ3アイコン:
これらのうちの1つだけが、必要なものの32x32バージョンです。
私は、私のような呼ばExtractAssociatedIconEx APIが見つかりました:
WORD wIcnId = -13011;
WORD wIcnInd = 3;
hIconLogo = ::ExtractAssociatedIconEx(hInst, L"mstsc.exe", &wIcnInd, &wIcnId);
をしかし、それはあまりにも私が期待していなかった他のいくつかのアイコンを提供します。
これらの2つのAPIの違いは何ですか?そして私は何が間違っているのですか?
特定のサイズのアイコンを取得するために 'LoadImage'を試してみてください。 –
@JonathanPotter:ありがとうございます。私はそれを正しく書いているかどうかはわかりませんが。 :: LoadImage(:: LoadLibrary(L "mstsc.exe")、MAKEINTRESOURCE(13011)、IMAGE_ICON、48、48、LR_LOADFROMFILE); 'アクセス違反例外をスローしますが、:: LoadImage :: LoadLibrary(L "mstsc.exe")、L "#13011"、IMAGE_ICON、48、48、LR_LOADFROMFILE); 'はNULLを返します。 – c00000fd