|
運用 Windows管理者のためのWindows Script Host入門 3.ショートカットの作成
海津智宏 |
![]() |
|
|
|
ショートカットの作成
―― CreateShortcutメソッド ――
|
周知のとおりWindowsでは、ファイルやフォルダ、Webページに対してショートカットを作成し、それらをさまざまな場所に配置することで、頻繁にアクセスするファイルやWebページに素早くアクセスできるようにすることができる。デスクトップなどに置かれるショートカット以外にも、スタートメニューやタスク・バーのクイックランチ、ファイルを右クリックした際の「送る」メニューへの登録など、ショートカットは幅広く使われている。CreateShortcutメソッドを利用すれば、WSHスクリプトからこのショートカットを作成することができる。
![]() |
ショートカットの作成手順は3段階に分かれる。まず、ファイル名を指定してCreateShortcutメソッドを呼び出してショートカットを表すオブジェクトを作成し、次にそのオブジェクトのプロパティを設定し、最後にSaveメソッドで保存を行う、という流れである。
![]() |
| WSHスクリプトによるショートカット作成の流れ |
| WSHスクリプトでショートカットを作成するには、これら3つのステップを踏む。 |
なお、ひと口に「ショートカット」といっても、ファイルやフォルダのショートカットとWebページのショートカットとでは、ショートカットの実体も機能も違うので、スクリプトでは分けて扱う必要がある。
■ファイルやフォルダへのショートカット
ファイルやフォルダへのショートカットの実体は、拡張子「.lnk」を持つファイルである。スクリプトでは、指定するファイル名の拡張子を「.lnk」にすることで、ファイルやフォルダへのリンクを作成することができる。この場合、CreateShortcutメソッドの戻り値がショートカットを表すWshShortCutオブジェクトとなる。
WshShortCutオブジェクトでは、以下のプロパティが利用可能である(前出のクラス図では、これらに加え「RelativePath」というプロパティがあることになっているが、未実装のようなので表には入れなかった)。
| プロパティ | 意味 |
| TargetPath | リンク先のファイル名 |
| WorkingDirectory | 作業フォルダ |
| Hotkey | キーボード・ショートカット |
| WindowStyle | 実行時の大きさ |
| Description | ショートカットの説明 |
| IconLocation | ショートカットのアイコン |
| Arguments | 実行ファイルに渡すパラメータ |
| FullName | (読み取り専用)ショートカットファイルのフルパス |
| WshShortCutオブジェクトのプロパティ | |
これを見れば分かるとおり、GUIのショートカットのプロパティで設定できる項目がすべてスクリプトからも設定可能となっている。なお、TargetPath以外のプロパティは必要なければ設定しなくても構わない。
![]() |
| ショートカットのプロパティ画面 |
| GUIで設定できるすべての項目が、WshShortCutオブジェクトのプロパティとして定義されていることが分かる。 |
では、CreateShortcutを利用してデスクトップにメモ帳へのショートカットを作成してみよう。
1: Set objShell = WScript.CreateObject("WScript.Shell") |
デスクトップにショートカットを作成するために、デスクトップのパスをSpecialFoldersメソッドで取得している。そのパスにショートカットの名前と「.lnk」を付けた名前をCreateShortcutメソッドに渡す。5行目でCreateShortcutメソッドを呼び出し、6行目でリンク先を指定し、7行目で保存している。これを実行すると、デスクトップに「メモ帳」というショートカットを作成することができる。
そのほかのプロパティを設定する場合は次のようにする。
1: Const MAXIMIZE_WINDOW = 3 |
9行目では、作業を行う際のカレント・ディレクトリ(作業フォルダ)をマイ・ドキュメントに設定し、10行目でメモ帳へのパラメータとしてtest.txtというファイル名を指定している。ファイルのパスが指定されていないので、カレント・ディレクトリであるマイ・ドキュメントのtest.txtが開かれることになる。
11行目ではキーボード・ショートカットを設定している。キーボード・ショートカットを設定すると、デスクトップまたはスタート・メニューのショートカットをキー操作のみで実行できるようになる。ここでは、例としてCtrl+Alt+Xのキーを設定した。これを設定しておくと、マウスを使わずに、Ctrl+Alt+Xキーを押すだけで、いつでもショートカットを起動することができる。Hotkeyプロパティは「Alt+」「Ctrl+」「Shift+」と英数字の組み合わせで表現される。12行目はウィンドウの表示方法である。これは、Runメソッドでのウィンドウの表示方法と同じ0から10までの整数を指定する。指定する数字に関しては、前回の記事に一覧があるので参照されたい。13行目はショートカットの説明で、マウスをショートカット上にかざしたときにここで指定した説明が表示される。14行目は表示するアイコンで、アイコンを含むファイル名とそのファイルの中での番号をカンマで区切って指定する。
■Webページへのショートカット
インターネット上のWebページへのショートカットは拡張子「.url」を持つファイルである。指定するファイル名の拡張子を「.url」にすれば、Webページへのリンクを作成することができる。この場合、CreateShortcutメソッドの戻り値はURLショートカットを表すWshUrlShortcutオブジェクトとなる。WshUrlShortcutオブジェクトでは、WshShortcutのようにさまざまなプロパティを設定することはできず、TargetPathとFullNameのみが利用できる。
| プロパティ | 意味 |
| TargetPath | リンク先のファイル名 |
| FullName | (読み取り専用)ショートカットファイルのフルパス |
| WshUrlShortcutオブジェクトのプロパティ | |
デスクトップに「Windows Server Insider」(本サイト)へのショートカットを作成するには次のようなコードを書けばよい。
1: Set objShell = WScript.CreateObject("WScript.Shell") |
このように拡張子を「.url」にし、TargetPathにリンク先URLを設定するだけで、ファイルやフォルダに対するショートカットと同様のコードでWebページへのショートカットも作成できる。
■特殊フォルダの利用
特殊なフォルダにショートカットを作成すれば、スタート・メニューや起動の内容も変更できる。ここで、それらのフォルダの指定方法を紹介しておこう。
| 特殊フォルダ | 指定方法 |
| スタート・メニュー(すべてのプログラム) | objShell.SpecialFolders("Programs") |
| スタート・メニューの「スタートアップ」 | objShell.SpecialFolders("Startup") |
| コンテキスト・メニューの「送る」 | objShell.SpecialFolders("SendTo") |
| お気に入り | objShell.SpecialFolders("Favorites") |
| クイック起動 | objShell.ExpandEnvironmentStrings( _"%APPDATA%\Microsoft\Internet Explorer\Quick Launch") |
デスクトップではなくクイック起動に「Windows Server Insider」を追加するには、次のように変更するだけである。
1: Set objShell = WScript.CreateObject("WScript.Shell") |
これを実行してログオンし直せば、スタート・ボタンの横のクイック起動に新しいショートカットが追加されているのが分かるだろう(クイック起動が表示されていない場合は、タスク・バーの空き領域を右クリックし、ポップアップ・メニューの[ツール バー]−[クイック起動]をオンにする)。
■ショートカットの削除
WshShellオブジェクトでは、ショートカットを作成することはできても削除することはできない。しかし、ショートカットも1つのファイルであるから、通常のファイルと同様に処理すれば、ショートカットも削除できる。WSHでは、ファイルの削除にはFile System Object(FSO)というオブジェクトを利用する。FSOはこの連載ではまだ紹介していないが、削除を行うコードのみここで紹介しておこう。
1: Set objShell = WScript.CreateObject("WScript.Shell") |
このようにFSOオブジェクトを作り、そのDeleteFileメソッドにファイル名を渡せば作成したショートカットを削除することができる。
次回もWshShellオブジェクトの機能として、アプリケーション・イベント・ログの作成やレジストリ情報の取得・設定について解説する。![]()
| INDEX | ||
| [運用]Windows管理者のためのWindows Script Host入門 | ||
| 第6回 WshShellオブジェクトの詳細(2) | ||
| 1.特殊フォルダの取得 | ||
| 2.環境変数の取得と設定 | ||
| 3.ショートカットの作成 | ||
| 運用 |
ホワイトペーパー(TechTargetジャパン)
- 第207話 究極の人事システム (2010/2/9)
部長、わが人事部が開発した究極の人事評価システムがついに完成しました! これで不要な社員が一発で分かります! - WindowsTIPS (2010/2/5)
− netshコマンドでTCP/IPのパラメータを設定する
− Virtual PC 2007の共有NATで利用可能なアドレス範囲
− スタンバイ復帰でパスワード入力を要求されないように - 仮想環境でActive Directoryを利用する (2010/2/4)
仮想環境にADをインストールすれば、自由にActive Directoryドメイン・ネットワークを構築して実験できる - 第206話 バナー広告案 (2010/2/2)
いまどきWebマーケティングが不可欠なのは分かるが、強烈な競合に並べてバナーなんか出して、勝ち目はあるのか?
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |










