WshShell.SpecialFoldersスペシャルフォルダーズ プロパティ

WshShellオブジェクトが持つ特別なフォルダへのパスを取得します。引数を省略した場合、すべての特別なフォルダを格納したWshCollectionコレクションを返します。

構文
  1. WshCollection = WshShell.SpecialFolders.[_Default]( objWshSpecialFolders )
既定プロパティ
WshShell.SpecialFolders
引数
objWshSpecialFolders (Integer,String)省略可
取得するフォルダの名前もしくは値
戻り値
引数あり
特別なフォルダのパス文字列
引数なし
WshCollection オブジェクト

SpecialFolderの定数一覧

文字列 内容
AllUsersDesktop 0 すべてのユーザーに共通のデスクトップ
AllUsersStartMenu 1 すべてのユーザーに共通のスタートメニュー
AllUsersPrograms 2 すべてのユーザーに共通のプログラムメニュー
AllUsersStartup 3 すべてのユーザーに共通のスタートアップ
Desktop 4 ログインユーザーのデスクトップ
AppData 5 ログインユーザーのアプリ用データ
PrintHood 6 ログインユーザーのプリンタ
Templates 7 ログインユーザーの新規作成のテンプレート
Fonts 8 フォント
NetHood 9 ログインユーザーのネットワーク
Desktop 10 ログインユーザーのデスクトップ
StartMenu 11 ログインユーザーのスタートメニュー
SendTo 12 ログインユーザーの送る
Recent 13 ログインユーザーの最近使ったファイル
Startup 14 ログインユーザーのスタートアップ
Favorites 15 ログインユーザーのお気に入り
MyDocuments 16 ログインユーザーのマイドキュメント
Programs 17 ログインユーザーのプログラムメニュー

他の定数と被らないようにとりあえずSpecialFolderの定数だから接頭辞sfを付与。

UWSC
CONST sfAllUsersDesktop = 0
CONST sfAllUsersStartMenu = 1
CONST sfAllUsersPrograms = 2
CONST sfAllUsersStartup = 3
CONST sfDesktop = 4
CONST sfAppData = 5
CONST sfPrintHood = 6
CONST sfTemplates = 7
CONST sfFonts = 8
CONST sfNetHood = 9
CONST sfDesktop = 10
CONST sfStartMenu = 11
CONST sfSendTo = 12
CONST sfRecent = 13
CONST sfStartup = 14
CONST sfFavorites = 15
CONST sfMyDocuments = 16
CONST sfPrograms = 17

使い方

デスクトップのパスを取得

SpecialFoldersの引数は文字列・値どちらでもパスを取得することができるので、以下はいずれもログインユーザーのデスクトップのパスを返します。

UWSC
CONST sfDesktop = 4

PRINT WshShell.SpecialFolders(4)
PRINT WshShell.SpecialFolders("Desktop")
PRINT WshShell.SpecialFolders(sfDesktop)
結果
プレーンテキスト
D:\Desktop
D:\Desktop
D:\Desktop

エクスプローラで開く

エクスプローラでデスクトップを開きます。

UWSC
DIM Shell = CREATEOLEOBJ("Shell.Application")
DIM WshShell = CREATEOLEOBJ("WScript.Shell")

Shell.Explore(WshShell.SpecialFolders("Desktop"))

すへての特別なフォルダを取得

引数を省略した場合、すべての特別なフォルダを格納したWshCollectionコレクション(配列)を返すのでFOR-IN-NEXTですべてのパスを取得します。

UWSC
DIM WshShell = CREATEOLEOBJ("WScript.Shell")

FOR item IN WshShell.SpecialFolders()
	PRINT item
NEXT
結果
プレーンテキスト
C:\Users\Public\Desktop
C:\ProgramData\Microsoft\Windows\Start Menu
C:\ProgramData\Microsoft\Windows\Start Menu\Programs
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
D:\Desktop
C:\Users\akita\AppData\Roaming
C:\Users\akita\AppData\Roaming\Microsoft\Windows\Printer Shortcuts
C:\Users\akita\AppData\Roaming\Microsoft\Windows\Templates
C:\Windows\Fonts
C:\Users\akita\AppData\Roaming\Microsoft\Windows\Network Shortcuts
D:\Desktop
C:\Users\akita\AppData\Roaming\Microsoft\Windows\Start Menu
C:\Users\akita\AppData\Roaming\Microsoft\Windows\SendTo
C:\Users\akita\AppData\Roaming\Microsoft\Windows\Recent
C:\Users\akita\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
C:\Users\akita\Favorites
D:\Documents
C:\Users\akita\AppData\Roaming\Microsoft\Windows\Start Menu\Programs

プログラム実行例

特殊フォルダのパスを取得

UWSC
結果
CSV
0,    C:\Users\Public\Desktop
1,    C:\ProgramData\Microsoft\Windows\Start Menu
2,    C:\ProgramData\Microsoft\Windows\Start Menu\Programs
3,    C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
4,    C:\Users\username\Desktop
5,    C:\Users\username\AppData\Roaming
6,    C:\Users\username\AppData\Roaming\Microsoft\Windows\Printer Shortcuts
7,    C:\Users\username\AppData\Roaming\Microsoft\Windows\Templates
8,    C:\Windows\Fonts
9,    C:\Users\username\AppData\Roaming\Microsoft\Windows\Network Shortcuts
10,   C:\Users\username\Desktop
11,   C:\Users\username\AppData\Roaming\Microsoft\Windows\Start Menu
12,   C:\Users\username\AppData\Roaming\Microsoft\Windows\SendTo
13,   C:\Users\username\AppData\Roaming\Microsoft\Windows\Recent
14,   C:\Users\username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
15,   C:\Users\username\Favorites
16,   C:\Users\username\Documents
17,   C:\Users\username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
使用関数

UWSC.INIよりUWSCを再生するホットキーを取得

Roamingフォルダ(C:\Users\username\AppData\Roaming\)のUWSCフォルダにあるUWSC.INIを読み込み、UWSCを停止するホットキーを取得します。

UWSC
DIM WshShell = CREATEOLEOBJ("WScript.Shell")

FOR i = 0 TO 17
	PRINT i + ","  + WshShell.SpecialFolders(i)
NEXT
UWSC.INI
[SET]
Position=7,81
PlayHotKey=1,2
StopHotKey=2,2
RecHotKey=3,2
TrayHotKey=14,5
LunchMenuHotKey=14,0
MouseOrg=0
NotActive=0
StayOnTop=0
LogLines=2000
DefaultFont=,
TaskTrayStart=1
結果
プレーンテキスト
ALT+F1
使用関数
解説

この記事は役に立ちましたか?

はい
いいえ
ご協力ありがとうございます。