2011年2月25日

今日 PowerShell で dll のアイコンを指定しようとして困ったこと。

ショートカットを作る PowerShell を書いてて、アイコンを指定しようと思った。

ふつうは、ico ファイルとか exe をそのまま指定するんだけろうけど、
今回は %SystemRoot%\system32\SHELL32.dll の中のアイコンを指定したかった。

ググりかたすらわからなかったけど、ひょんなことから発見。

"%SystemRoot%\system32\SHELL32.dll,-1"

とかで指定できるみたい。

これで安泰!と思いきや、欲しいアイコンの数字を指定してもアイコンが白いまま。

で、ためしに「-」を取ってみたらできた。

"%SystemRoot%\system32\SHELL32.dll,265"

アイコンの番号は、左上から右下に向かって 1 づつ増える。
数えるのが面倒だけど。

あと、「-」はつけなくてもいいみたい。
一応、54 まではつけてもうごくみたいだけど。(Windows 7 Home Premium 64-bit にて)


ちなみに、ショートカット作るには以下のコマンドを PowerShell で実行すれば OK

$wsh = New-Object -comObject WScript.Shell
$link = $wsh.CreateShortcut("C:\Users\Public\Desktop")
$link.TargetPath = "C:\Windows\notepad.exe"
$link.WorkingDirectory = "C:\Windows\"
$link.IconLocation = "C:\Windows\notepad.exe"
$link.Save()

ショートカットの引数は Save() を呼び出す前に以下の値を指定すれば OK
$link.Arguments = "なんちゃら"

0 件のコメント: