VBScriptを使用してWindows 8のスタートメニューにプログラムをピン留めする記事を以前に書きました
VBScript – Script to pin items to Start menu in Windows 8
http://www.rootlinks.net/2013/09/29/vbscript-script-to-pin-items-to-start-menu-in-windows-8/
この記事をご覧頂いた方から問合せがあり、改めてデバックをしてみたら動作しませんでした(^^;;
1 |
FilePath = GetNameSpace(strFullPath) |
このオブジェクトが利用できませんでした(Outlookをインストールしていないとダメ?)
デバックしたOSはMicrosoft Windows [Version 6.2.9200](Windows 8 Pro x64)の初期インストール状態で追加アプリケーションはまったくありません
ちょっと悔しいので修正しました
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
strFullPath = WScript.Arguments(i) Set objFileSys = CreateObject("Scripting.FileSystemObject") FileName = objFileSys.GetFileName(strFullPath) FilePath = Replace(strFullPath, FileName,"") Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.Namespace(FilePath) Set objFolderItem = objFolder.ParseName(FileName) Set colVerbs = objFolderItem.Verbs Dim objVerb For Each objVerb in colVerbs If Replace(objVerb.name, "&", "") = "スタートにピン留め(P)" Then objVerb.DoIt wscript.sleep 10 End If Next |
私の環境に依存するのか”wscript.sleep 10″が無いとピン留めができたり、できなかったりの状態でした
私の環境では上記コードでほぼ確実にピン留めができるようになりましたが、個々で若干の調整が必要かも知れません
使用方法は上記コードを”PinToStartMenu.vbs”とでも保存して下さい
参考ページにもあるように一つはこのPinToStartMenu.vbsにピン留めを行いたいファイルやフォルダをドロップします
Script to pin items to Start menu in Windows 8 (VBScript)
http://gallery.technet.microsoft.com/scriptcenter/How-to-pin-items-to-Start-ee960ad8#content
もう一つはバッチスクリプトやコマンドプロンプトから利用します
メモ帳やペイント、フォルダをスタートメージにピン留めしたい場合はそのフルパスをパラメーターとして指定します
1 2 3 4 5 6 7 |
c:\work\PinToStartMenu.vbs c:\windows\notepad.exe c:\Work>PinToStartMenu.vbs c:\windows\system32\mspint.exe c:\Work>PinToStartMenu.vbs c:\work c:\Work>PinToStartMenu.vbs c:\windows |
ピン留めを行いたいプログラム等のフルパスが間違っているとVBScriptがエラーを吐いて終わります
この辺りはもう少し改良の余地はありますが….