| ■19402 / ) |
Re[11]: ショートカットファイルのアイコン設定 |
□投稿者/ こみ (7回)-(2008/05/22(Thu) 19:08:02)
|
■No19393 (とっちゃん さん) に返信 > ■No19388 (こみ さん) に返信 >>途中報告です。 > >>このようにショートカットの情報を取るものを実行してみました >>結果「TargetPath」は正常に取得できますが「*.sln」に限って「IconLocation」のみ結果が「,0」としか取得できませんでした >> >>メモ帳などのショートカットの場合は「TargetPath」「IconLocation」とも正常に取得できます。 > > ",0" と帰ってくるショートカットをエクスプローラのプロパティでアイコンの変更とした場合にどうなりますか?
何も起こりません、普通に設定できるようになります。 ちょっと違うのは、参照先が元からDLLとは違い、システムのDLL「%SystemRoot%\system32\SHELL32.dll」になっていることですね。 > > それと、ショートカットファイルをどうやって作ったのか?も教えていただけると... > 普通に右クリックで作成したものです、何も特別なことはしていません。 普通に作っただけなので、アイコンの表示も正常です。
> で、IconLocation ですが... > 文字列で、"ファイルパス, アイコンインデックス" と指定するようですね。 > 形式的には、ProgId\DefaultIcon と同じ記述方法となっているようです。 > > なので、実行可能ファイルのアイコンを指定したいという場合は、 > "...\Hoge.exe, 0" という形で指定すればいいのだろうと思います。 > 最初にそう思ったのですが、結果「白い四角のアイコン」になります。
> 逆にシステムのデフォルトの設定のままでよいというのであれば、 > IconLocation には何もしないという処理でよいのではないかとおもいます。 > やってみたのですが、やりたいことが .IconLocation = "C:\test.sln" .TargetPath = "C:\Windows\notepad.exe" のようなターゲットとアイコンが異なり、結果アイコンはメモ帳のアイコンになってしまいます 仮に .IconLocation = "C:\Windows\regedit.exe" .TargetPath = "C:\Windows\notepad.exe" ならアイコンはレジストリエディタ、実行パスはメモ帳になります。
> 昔 IShellLink でファイルのショートカットを作っていたころは、アイコンのセットなんてやってませんでしたし。 >
たぶんリンク先のアイコンが正常に出てるためだと思います。
アイコンのイメージは取得できるのに、アイコンインデックスが取れないなんて変な物ですね・・・・。
|
|