本ページには広告が含まれています。
目次
WshShellオブジェクトが持つ特別なフォルダへのパスを取得します。引数を省略した場合、すべての特別なフォルダを格納したWshCollectionコレクションを返します。
- 構文
- WshCollection = WshShell.SpecialFolders.[_Default]( objWshSpecialFolders )
- 既定プロパティ
- WshShell.SpecialFolders
- 引数
- objWshSpecialFolders (Integer,String)省略可
- 取得するフォルダの名前もしくは値
- 戻り値
- 引数あり
- 特別なフォルダのパス文字列
- 引数なし
- WshShell.SpecialFolders プロパティ
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
プログラム実行例
特殊フォルダのパスを取得
DIM WshShell = CREATEOLEOBJ("WScript.Shell")
FOR i = 0 TO 17
PRINT i + "," + WshShell.SpecialFolders(i)
NEXT
結果
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 modifers[] = "CTRL", "WIN", "ALT", "SHIFT+CTRL", "SHIFT+ALT", "CTRL+ALT"
DIM keys[] = "SPACE", "F1", "F2", "F3", "F4", "F9", "F10", "F11", "F12", "↑", _
"↓", "→", "←", "Q", "W", "E", "R", "A", "S", "D", _
"F", "End", "Home", "F5", "F6", "F7", "F8", "T", "Y", "U", _
"I", "O", "P", "G", "H", "J", "K", "L", "Z", "X", _
"C", "V", "B", "N", "M", "1", "2", "3", "4", "5", _
"6", "7", "8", "9"
DIM WshShell = CREATEOLEOBJ("WScript.Shell")
DIM str = READINI("SET", "PlayHotKey", WshShell.ExpandEnvironmentStrings("%AppData%\UWSC\UWSC.INI"))
DIM nums = SPLIT(str, ",")
PRINT modifers[nums[1]] + "+" + keys[nums[0]]
結果
ALT+F1
使用関数
解説