トップ回答者
Windows XP [スタート]メニューにアイコンを追加 の VBS による登録について

質問
-
いつもお世話になります。S&S2G の清水徹と申します。
Windows XP (SP3)ノスタートメニュー(ルナモード)のカスタマイズを VBScript によって行っています。
例) "E:\DATA\ShortCut" に Calc.exe のショートカットを配置してスタートメニューに登録
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace("E:\DATA\ShortCut")
Set objFolderItem = objFolder.ParseName("計算機.lnk")
For each itemverb in objFolderItem.verbs
If itemverb.name = "[スタート] メニューにアイコンを追加(&I)" Then itemverb.DoIt
Next
上記スクリプトは、ショートカットを右クリックした際に表示される「[スタート] メニューにアイコンを追加」
をスクリプト化した物ですが、実行ファイルの拡張子拡張子が BAT や VBS のショートカットを指定した場合、右クリックしても「[スタート] メニューにアイコンを追加」が表示されないため、このスクリプトによる登録が行われません。
そこで...
・「[スタート] メニューにアイコンを追加」が、BAT や VBS ファイルにおいても右クリックで表示される方法
または
・上記スクリプト以外の方法でスタートメニューへの追加や削除が行われる VBS の記述
についてご教授いただきたくおねがいいたします。
回答
-
よく読み返して、ようやく事態が飲み込めました。まったく見当違いな返信をしていたようで、大変申し訳ありません。
Raymond Chen 曰く、スタート メニューのピン リストにはワザとプログラムからはアクセスしづらくしているようですね。
The Old New Thing : Why is there no programmatic access to the Start menu pin list?
http://blogs.msdn.com/oldnewthing/archive/2003/09/03/54760.aspx
Azulean さんがご紹介のレジストリ編集だと、Shift + 右クリックでないとコンテキスト メニューに出てこないので、スクリプトで操作するのは難しいかもしれません。
別の方法としましては、.BAT や .VBS を .EXE に変換してしまうという方法もあります。(ちょっと無理やりっぽいですが。)
Renegade's Random Tech: How to Convert a .BAT file or .VBS file into .EXE to Enable Pinning to XP Start Menu
http://renegadetech.blogspot.com/2006/07/how-to-convert-bat-file-or-vbs-file.html
VBScriptを実行ファイルに変換する@IExpress - http://pnpk.net
http://pnpk.net/cms/archives/436- 回答としてマーク 元力士 2009年7月23日 5:17
すべての返信
-
試したわけではありませんが、CreateShortcut メソッドを使えば実現できそうな気がします。
CreateShortcut メソッド
http://msdn.microsoft.com/ja-jp/library/cc364400.aspx
上記 URL のサンプルコードで、SpecialFolder を変えればよさげな雰囲気が。
ついでにもうひとつ参考の URL を挙げておきます。
@IT:運用 Windows管理者のためのWindows Script Host入門 第6回 WshShellオブジェクトの詳細(2) 3.ショートカットの作成 ― CreateShortcutメソッド ―
http://www.atmarkit.co.jp/fwin2k/operation/wsh06/wsh06_03.html -
ルナ モードと断り書きを入れるということは、Quick Launch の方に入れたいということですかね。
自分が作成したいものと同じ場所にあるアイコンを試しに右クリックしてみると、やるべきことが見えてくると思います。
説明が足りないように思いましたので補足しておきます。
スタート メニューの中にいくつかアイコンが登録されていると思います。(EXE に限らず色んな項目がありますが、ここでは EXE を例にとります。)
どのアイコンでもいいので、適当なやつを右クリックします。
自分が作成したいものと同じ場所にあるアイコン
とは、例えばスタート メニューのアイコンであっても、右クリックして「スタート メニューに表示する」という処理をする前とした後では、ショートカットの作成場所が異なるためです。
(スタートメニューの項目が横線の上と下とに並んでいます。それぞれでショートカットを作成すべき場所は異なります。)
右クリックしてプロパティを表示し「全般」タブを選択すると、どこにショートカットを作成するべきかが見えると思います。
これを参考にして BAT や VBS のショートカットを作成するといいのではないでしょうか。 -
(スタートメニューの項目が横線の上と下とに並んでいます。それぞれでショートカットを作成すべき場所は異なります。)
そうでしょうか?
右クリックしてプロパティを表示し「全般」タブを選択すると、どこにショートカットを作成するべきかが見えると思います。
Windows XP SP3環境で、F:\のルートフォルダに全く新しくショートカットを作り、それをスタートメニューの線の上の部分(太字で表示されるショートカット)に登録し、そのアイコンを右クリックしてからプロパティを表示し、全般タブを表示しても、元のショートカットと同じ位置(F:\)を指し示しました。
また、このアイコンの右クリックメニューから名前を変更すると、ドロップ元(F:\)のショートカットも名前が変わりました。
以上のことから、特定のフォルダにショートカットを作ればOKということではないと推測できます。
※この太字で表示される部分は Pin List と呼ぶらしい。
http://msdn.microsoft.com/en-us/library/aa511447.aspx
もし、BAT、VBS で右クリックして「[スタート] メニューにアイコンを追加」が表示されれば解決なのです。
似たような情報としてこういうのもありました。
レジストリを編集される際は自己責任でお願いします。
http://windowsxp.mvps.org/pinfolder.htm
解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。 -
よく読み返して、ようやく事態が飲み込めました。まったく見当違いな返信をしていたようで、大変申し訳ありません。
Raymond Chen 曰く、スタート メニューのピン リストにはワザとプログラムからはアクセスしづらくしているようですね。
The Old New Thing : Why is there no programmatic access to the Start menu pin list?
http://blogs.msdn.com/oldnewthing/archive/2003/09/03/54760.aspx
Azulean さんがご紹介のレジストリ編集だと、Shift + 右クリックでないとコンテキスト メニューに出てこないので、スクリプトで操作するのは難しいかもしれません。
別の方法としましては、.BAT や .VBS を .EXE に変換してしまうという方法もあります。(ちょっと無理やりっぽいですが。)
Renegade's Random Tech: How to Convert a .BAT file or .VBS file into .EXE to Enable Pinning to XP Start Menu
http://renegadetech.blogspot.com/2006/07/how-to-convert-bat-file-or-vbs-file.html
VBScriptを実行ファイルに変換する@IExpress - http://pnpk.net
http://pnpk.net/cms/archives/436- 回答としてマーク 元力士 2009年7月23日 5:17