2009年06月21日


VBScript : ディレクトリ選択



Set Shell = CreateObject( "Shell.Application" )
Set objFolder = Shell.BrowseForFolder( 0, "フォルダ選択", &H4B, &H5 )
if objFolder is nothing then
	WScript.Quit
end if
if not objFolder.Self.IsFileSystem then
	WScript.Echo "ファイルシステムではありません"
	WScript.Quit
end if

WScript.Echo objFolder.Self.Path

4番目の引数は省略できますが、省略しない場合は以下の一覧から選択します。システムで定義された数値か "C:\TMP" というような文字列でもかまいません
typedef enum {
	ssfALTSTARTUP = 0x1d,
	ssfAPPDATA = 0x1a,
	ssfBITBUCKET = 0x0a,
	ssfCOMMONALTSTARTUP = 0x1e,
	ssfCOMMONAPPDATA = 0x23,
	ssfCOMMONDESKTOPDIR = 0x19,
	ssfCOMMONFAVORITES = 0x1f,
	ssfCOMMONPROGRAMS = 0x17,
	ssfCOMMONSTARTMENU = 0x16,
	ssfCOMMONSTARTUP = 0x18,
	ssfCONTROLS = 0x03,
	ssfCOOKIES = 0x21,
	ssfDESKTOP = 0x00,
	ssfDESKTOPDIRECTORY = 0x10,
	ssfDRIVES = 0x11,
	ssfFAVORITES = 0x06,
	ssfFONTS = 0x14,
	ssfHISTORY = 0x22,
	ssfINTERNETCACHE = 0x20,
	ssfLOCALAPPDATA = 0x1c,
	ssfMYPICTURES = 0x27,
	ssfNETHOOD = 0x13,
	ssfNETWORK = 0x12,
	ssfPERSONAL = 0x05,
	ssfPRINTERS = 0x04,
	ssfPRINTHOOD = 0x1b,
	ssfPROFILE = 0x28,
	ssfPROGRAMFILES = 0x26,
	ssfPROGRAMFILESx86 = 0x30,
	ssfPROGRAMS = 0x02,
	ssfRECENT = 0x08,
	ssfSENDTO = 0x09,
	ssfSTARTMENU = 0x0b,
	ssfSTARTUP = 0x07,
	ssfSYSTEM = 0x25,
	ssfSYSTEMx86 = 0x29,
	ssfTEMPLATES = 0x15,
	ssfWINDOWS = 0x24
} ShellSpecialFolderConstants;


関連する記事

JScript : ディレクトリ選択


posted by at 2009-06-21 23:38 | VBScript | このブログの読者になる | 更新情報をチェックする