1.6 スペシャルフォルダを得る
 マイドキュメント、スタートメニュー、IEのお気に入りなどのフォルダのパスを得る方法です。こういったフォルダは、PCやユーザ(2000やXPの場合)によって違うことがあるので、プログラムの中でフォルダのパスをベタで書かずに、スペシャルフォルダという情報から得るようにしましょう。

 スペシャルフォルダの情報を得るには、WScript.ShellオブジェクトのSpecialFoldersというプロパティから得ることが出来ます。
使用例
 SpecialFoldersの使用例です。例では、スペシャルフォルダの一覧を表示しています。

 @でWScript.Shellオブジェクトを作成し、あとはSpecialFoldersプロパティの情報をズラズラ表示しているだけ。

 ■VBScriptでの記述例
Option Explicit

Dim objWshShell

'@WScript.Shellオブジェクトの作成
Set objWshShell = CreateObject("WScript.Shell")

'Aデスクトップ
WScript.echo "DESKTOP    = " & objWshShell.SpecialFolders("Desktop")

'Bお気に入り
WScript.echo "FAVORITES  = " & objWshShell.SpecialFolders("FAVORITES")

'Bフォント
WScript.echo "FONTS      = " & objWshShell.SpecialFolders("FONTS")

'Cマイドキュメント
WScript.echo "MYDOCUMENTS= " & objWshShell.SpecialFolders("MyDocuments")

'DNETHOOD
WScript.echo "NETHOOD    = " & objWshShell.SpecialFolders("NETHOOD")

'EPRINTHOOD
WScript.echo "PRINTHOOD  = " & objWshShell.SpecialFolders("PRINTHOOD")

'Fスタートメニューのプログラム
WScript.echo "PROGRAMS   = " & objWshShell.SpecialFolders("PROGRAMS")

'G最近使ったファイル
WScript.echo "RECENT     = " & objWshShell.SpecialFolders("RECENT")

'H送る
WScript.echo "SENDTO     = " & objWshShell.SpecialFolders("SENDTO")

'Iスタートメニュー
WScript.echo "STARTMENU  = " & objWshShell.SpecialFolders("STARTMENU")

'Jスタートアップ
WScript.echo "STARTUP    = " & objWshShell.SpecialFolders("STARTUP")

'Kテンプレート
WScript.echo "TEMPLATES  = " & objWshShell.SpecialFolders("TEMPLATES")

'Lアプリケーションデータ
WScript.echo "Appdata    = " & objWshShell.SpecialFolders("Appdata")

'Mデスクトップ(全ユーザ共通)
WScript.echo "AllUsersDesktop  = " & objWshShell.SpecialFolders("AllUsersDesktop")

'Nスタートメニュー(全ユーザ共通)
WScript.echo "AllUsersStartMenu= " & objWshShell.SpecialFolders("AllUsersStartMenu")

'Oスタートメニューのプログラム(全ユーザ共通)
WScript.echo "AllUsersPrograms = " & objWshShell.SpecialFolders("AllUsersPrograms")

'Pスタートアップ(全ユーザ共通)
WScript.echo "AllUsersStartup  = " & objWshShell.SpecialFolders("AllUsersStartup")

Set objWshShell = Nothing
 ※お使いのPCによっては表示しない物もあります。

 ■JScript(JavaScript)での記述例
//@WScript.Shellオブジェクトの作成
var objWshShell = new ActiveXObject("WScript.Shell");

//Aデスクトップ
WScript.echo("DESKTOP    = " + objWshShell.SpecialFolders("Desktop"));

//Bお気に入り
WScript.echo("FAVORITES  = " + objWshShell.SpecialFolders("FAVORITES"));

//Bフォント
WScript.echo("FONTS      = " + objWshShell.SpecialFolders("FONTS"));

//Cマイドキュメント
WScript.echo("MYDOCUMENTS= " + objWshShell.SpecialFolders("MyDocuments"));

//DNETHOOD
WScript.echo("NETHOOD    = " + objWshShell.SpecialFolders("NETHOOD"));

//EPRINTHOOD
WScript.echo("PRINTHOOD  = " + objWshShell.SpecialFolders("PRINTHOOD"));

//Fスタートメニューのプログラム
WScript.echo("PROGRAMS   = " + objWshShell.SpecialFolders("PROGRAMS"));

//G最近使ったファイル
WScript.echo("RECENT     = " + objWshShell.SpecialFolders("RECENT"));

//H送る
WScript.echo("SENDTO     = " + objWshShell.SpecialFolders("SENDTO"));

//Iスタートメニュー
WScript.echo("STARTMENU  = " + objWshShell.SpecialFolders("STARTMENU"));

//Jスタートアップ
WScript.echo("STARTUP    = " + objWshShell.SpecialFolders("STARTUP"));

//Kテンプレート
WScript.echo("TEMPLATES  = " + objWshShell.SpecialFolders("TEMPLATES"));

//Lアプリケーションデータ
WScript.echo("Appdata    = " + objWshShell.SpecialFolders("Appdata"));

//Mデスクトップ(全ユーザ共通)
WScript.echo("AllUsersDesktop  = " + objWshShell.SpecialFolders("AllUsersDesktop"));

//Nスタートメニュー(全ユーザ共通)
WScript.echo("AllUsersStartMenu= " + objWshShell.SpecialFolders("AllUsersStartMenu"));

//Oスタートメニューのプログラム(全ユーザ共通)
WScript.echo("AllUsersPrograms = " + objWshShell.SpecialFolders("AllUsersPrograms"));

//Pスタートアップ(全ユーザ共通)
WScript.echo("AllUsersStartup  = " + objWshShell.SpecialFolders("AllUsersStartup"));

objWshShell = null
 ※お使いのPCによっては表示しない物もあります。
Copyright(C) 1999-2006 結城圭介。 All rights reserved