WshShell.CreateShortcut メソッド
本ページには広告が含まれています。
任意のパスにショートカット(*.lnk)やURLショートカット(*.url)を新規に作成します。WshShortcut オブジェクト(*.lnkの場合)もしくはWshURLShortcut オブジェクト(*.urlの場合)が返ります。作成したショートカットはWshShell.CreateShortcutを実行時に保存されます。
- 構文
- Object = WshShell.CreateShortcut( strPathname )
- 引数
- strPathname
省略可
- 作成するショートカットのパスとファイル名
- 戻り値
プログラム実行例
メモ帳を起動するショートカットファイルを作成
カレントディレクトリにメモ帳.lnkのショートカットリンクを作成します。
DIM WshShell = CREATEOLEOBJ("WScript.Shell")
DIM WshShortcut = WshShell.CreateShortcut("メモ帳.lnk")
WshShortcut.TargetPath = "C:\Windows\System32\notepad.exe"
WshShortcut.Save
コマンドプロンプトのショートカットを生成
デスクトップにコマンドプロンプトへのショートカットリンクを作成します。
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
結果
解説
- 3-4行目
DIM Shell = CREATEOLEOBJ("Shell.Application")
DIM path = Shell.NameSpace(ssfDesktop).Self.Path
デスクトップのパスを取得しpathに代入。
- 6-7行目
DIM WshShell = CREATEOLEOBJ("WScript.Shell")
DIM WshShortcut = WshShell.CreateShortcut(path + "\cmd.lnk")
作成するショートカットのWshShortcut オブジェクトを生成しWshShortcutに代入。デスクトップにcmd.lnkというファイル名で作成。
- 9,15行目
WITH WshShortcut
…
ENDWITH
ショートカットの詳細設定。
- 10行目
.IconLocation = "C:\Windows\system32\imageres.dll, 11"
ショートカットのアイコンを指定。C:\Windows\system32\imageres.dllのインデックス番号11のアイコンを設定。
- 11行目
.TargetPath = "C:\WINDOWS\system32\cmd.exe"
ショートカットが示すプログラムのパスを指定。コマンドプロンプトのパス。C:\WINDOWS\system32\cmd.exeを指定。
- 12行目
- ショートカット起動時のウィンドウのサイズを指定。3は最大化を表します。
- 13行目
.WorkingDirectory = "%LOCALAPPDATA%"
作業ディレクトリを%LOCALAPPDATA%に指定。
- 14行目
- 設定したショートカットを保存。
デスクトップに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
結果
解説
- 1行目
- ssfDesktopに0を代入。
- 3行目
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell オブジェクトを生成しShellに代入します。
- 4行目
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
FileSystemObject オブジェクトを生成しFSOに代入します。
- 5行目
DIM WshShell = CREATEOLEOBJ("WScript.Shell")
WshShell オブジェクトを生成しWshShellに代入します。
- 7行目
DIM Folder2 = Shell.NameSpace(ssfDesktop)
デスクトップのFolder2 オブジェクトを取得し、Folder2に代入。
- 8行目
DIM path = Folder2.Self.Path + "\Chrome.lnk"
デスクトップ\Chrome.lnkのパスをpathに代入。
- 9行目
DIM WshShortcut = WshShell.CreateShortcut(path)
pathが示すパスにショートカットリンクを生成します。
- 11,19行目
WITH WshShortcut
…
ENDWITH
- 12行目
DIM chromePath = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
Google ChromeがあるパスをChromePathに代入。
- 13行目
.Description = "Chromeをシークレットモードで起動します。"
ショートカットが指し示すプログラムにChromePathのパスを設定。
- 14行目
.Hotkey = "Ctrl+Shift+C"
ChromePathのインデックス番号が7のアイコンを指定。
- 15行目
.IconLocation = chromePath + ",7"
ショートカットを実行したときに表示されるウィンドウの大きさを[最大化]に設定。
- 16行目
.TargetPath = chromePath
WshShortcut オブジェクトに加えた変更を保存します。
- 17行目
- 18行目
- 21行目
Folder = Shell.NameSpace(FSO.GetParentFolderName(path))
pathの親フォルダ名のFolder オブジェクトを取得し、Folderに代入します。
- 22行目
DIM FolderItem = Folder.ParseName(FSO.GetFileName(path))
- 23行目
DIM ShellLinkObject = FolderItem.Getlink()
- 24行目
DIM Args[] = "--incognito", "https://google.co.jp"
リンクに渡す引数を格納する配列。"--incognito"はシークレットモードで起動。"https://google.co.jp"は開くURL。
- 26,29行目
WITH ShellLinkObject
…
ENDWITH
- 27行目
.Arguments = JOIN(Args)
Args配列を、半角スペースで結合した文字列をリンク先の引数に指定。
- 28行目
- Shell.CreateShortcutに加えた変更を保存します。