WshShell.SpecialFolders プロパティ

本ページには広告が含まれています。

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

構文
  1. 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を付与。

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
DIM WshShell = CREATEOLEOBJ("WScript.Shell")

FOR i = 0 TO 17
	PRINT i + ","  + WshShell.SpecialFolders(i)
NEXT
結果
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 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]]
[syntaxHighlight language="INI" title="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[/syntaxHighlight]
結果
プレーンテキスト
ALT+F1
使用関数
解説