Contents
WshShellオブジェクトが持つ特別なフォルダへのパスを取得します。引数を省略した場合、すべての特別なフォルダを格納したWshCollectionコレクションを返します。
- 構文
- 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を付与。
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の引数は文字列・値どちらでもパスを取得することができるので、以下はいずれもログインユーザーのデスクトップのパスを返します。
CONST sfDesktop = 4
PRINT WshShell.SpecialFolders(4)
PRINT WshShell.SpecialFolders("Desktop")
PRINT WshShell.SpecialFolders(sfDesktop)
- 結果
D:\Desktop D:\Desktop D:\Desktop
エクスプローラで開く
エクスプローラでデスクトップを開きます。
DIM Shell = CREATEOLEOBJ("Shell.Application")
DIM WshShell = CREATEOLEOBJ("WScript.Shell")
Shell.Explore(WshShell.SpecialFolders("Desktop"))
すへての特別なフォルダを取得
引数を省略した場合、すべての特別なフォルダを格納したWshCollectionコレクション(配列)を返すのでFOR-IN-NEXTですべてのパスを取得します。
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
プログラム実行例
特殊フォルダのパスを取得
結果
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を停止するホットキーを取得します。
DIM WshShell = CREATEOLEOBJ("WScript.Shell")
FOR i = 0 TO 17
PRINT i + "," + WshShell.SpecialFolders(i)
NEXT
[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
使用関数
解説
この記事は役に立ちましたか?
ご協力ありがとうございます。