目次
ショートカットが参照するアイコンのファイルパスとインデックスを取得または設定します。
- 構文
- WshShortcut.IconLocation = String
- 引数
- 戻り値
WshShortcut オブジェクトを返すメソッド・プロパティ
- WshShell.CreateShortcut メソッド
- ショートカットまたはURLショートカットへのオブジェクト参照を作成します。
使い方
文字列は以下の形式で指定します。ファイルのパスはアイコンが含まれているEXEファイルやDLLファイルのパス、アイコンのインデックスは0から始まる整数値を指定します。
WshShortcut.IconLocation = "<ファイルのパス>, <アイコンのインデックス>"
WshShortcut.IconLocation = "C:\Program Files\Internet Explorer\iexplorer.exe, 3"
「アイコンのインデックス」はショートカットファイルを右クリックし[プロパティ]-[ショートカット]タブの[アイコンの変更]で確認することができます。
[アイコンを変更]ウィンドウの[このファイル内のアイコンを検索]が「ファイルのパス」、「アイコンのインデックス」はアイコンが表示されている一覧の左上を0とし、下方向に1、2、3、…と続いていきます。

C:\Windows\system32\imageres.dll
exeやdllに含まれているアイコンとインデックスはIcon Explorer - 無料・ダウンロードで確認することができます。
Icon (数字)の数字の部分がインデックス番号を示しています。
C:\Windows\System32\のフォルダにアイコンが格納されたDLLファイルがたくさんあります。

プログラム実行例
コマンドプロンプトのショートカットを生成
デスクトップにコマンドプロンプトへのショートカットリンクを作成します。
CONST ssfDesktop = 0
DIM Shell = CREATEOLEOBJ("Shell.Application")
DIM path = Shell.NameSpace(ssfDesktop).Self.Path
DIM WshShell = CREATEOLEOBJ("WScript.Shell")
DIM WshShortcut = WshShell.CreateShortcut(path + "\cmd.lnk")
WITH WshShortcut
.IconLocation = "C:\Windows\system32\imageres.dll, 11"
.TargetPath = "C:\WINDOWS\system32\cmd.exe"
.WindowStyle = 3
.WorkingDirectory = "%LOCALAPPDATA%"
.Save
ENDWITH

デスクトップにChromeのショートカットを作成
デスクトップにGoogle Chromeで[createLink url="https://google.co.jp" title="https://google.co.jp"]をシークレットモードで起動するショートカットを作成します。
CONST ssfDesktop = 0
DIM Shell = CREATEOLEOBJ("Shell.Application")
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
DIM WshShell = CREATEOLEOBJ("WScript.Shell")
DIM Folder2 = Shell.NameSpace(ssfDesktop)
DIM path = Folder2.Self.Path + "\Chrome.lnk"
DIM WshShortcut = WshShell.CreateShortcut(path)
WITH WshShortcut
DIM chromePath = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
.Description = "Chromeをシークレットモードで起動します。"
.Hotkey = "Ctrl+Shift+C"
.IconLocation = chromePath + ",7"
.TargetPath = chromePath
.WindowStyle = 3
.Save
ENDWITH
Folder = Shell.NameSpace(FSO.GetParentFolderName(path))
DIM FolderItem = Folder.ParseName(FSO.GetFileName(path))
DIM ShellLinkObject = FolderItem.Getlink()
DIM Args[] = "--incognito", "https://google.co.jp"
WITH ShellLinkObject
.Arguments = JOIN(Args)
.Save
ENDWITH

UWSCのショートカットをスタートアップに作成
C:\Program Files (x86)\UWSC\UWSC.exeのショートカットをスタートアップに作成します。
CONST ssfSTARTUP = 7
DIM Shell = CREATEOLEOBJ("Shell.Application")
DIM folderspec = Shell.NameSpace(ssfSTARTUP).Self.Path
DIM WshShell = CREATEOLEOBJ("WScript.Shell")
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
DIM WshShortcut = WshShell.CreateShortcut(FSO.BuildPath(folderspec, "UWSC.exe - ショートカット.lnk"))
WITH WshShortcut
.IconLocation = "C:\Program Files (x86)\UWSC\UWSC.exe, 0"
.TargetPath = "C:\Program Files (x86)\UWSC\UWSC.exe"
.WindowStyle = 1
.WorkingDirectory = "C:\Program Files (x86)\UWSC\"
.Save
ENDWITH