【VBS】デスクトップの情報を取得する

名称 タイプ パス 説明
1 コンピューター ::{20D04FE0-3AEA-1069-A2D8-08002B30309D} このコンピューターに接続しているディスク ドライブやハードウェアを表示します。
2 ごみ箱 ::{645FF040-5081-101B-9F08-00AA002F954E} 削除したファイルやフォルダーが含まれます。
3 コントロール パネル ::{26EE0668-A00A-44D7-9371-BEB064C98683} 設定を変更し、このコンピューターの機能をカスタマイズします。
4 lightbox C:\Users\lightbox
5 ライブラリ ::{031E4825-7B94-4DC3-B131-E946B44C8DD5}
6 コントロール パネル ::{5399E694-6CE5-4D6C-8FCE-1D8870FDCBA0} 設定を変更し、このコンピューターの機能をカスタマイズします。
7 ホームグループ ::{B4FB3F98-C1EA-428D-A78A-D1F5659CBA93}
8 ネットワーク ::{F02C1A0D-BE21-4350-88B0-7367FC96EF3C} ネットワーク上のコンピューターとデバイスにアクセスします。
9 Google Chrome ショートカット C:\Users\lightbox\Desktop\Google Chrome.lnk Access the Internet
10 TeraPad ショートカット C:\Users\lightbox\Desktop\TeraPad.lnk 場所: TeraPad (C:\Program Files\tpad093)
11 +Lhaca ショートカット C:\Users\Public\Desktop\+Lhaca.lnk +Lhaca
12 FileZilla Client ショートカット C:\Users\Public\Desktop\FileZilla Client.lnk 場所: filezilla (C:\Program Files\FileZilla FTP Client)
13 Mozilla Firefox ショートカット C:\Users\Public\Desktop\Mozilla Firefox.lnk 場所: firefox (C:\Program Files\Mozilla Firefox)
14 Opera ショートカット C:\Users\Public\Desktop\Opera.lnk 場所: opera (C:\Program Files\Opera)

2010/09/09
Windows7 で動作確認

ブラウザでダウンロード
VBScript で HTML を書き出す
Shell オブジェクトは、一般的な目的で利用する事は少ないですが、
パッチ処理にはなにかと助けになってくれます。

この一覧は、ただ見るだけですが、本来は VC++ で作成したデスクトップの
アイコンの位置情報と共に「保存可能な実体を持つファイル」を判断する為に使います
bFlg = True

' 必要なオブジェクト
Set Fs = CreateObject( "Scripting.FileSystemObject" )
Set WshShell = CreateObject( "WScript.Shell" )
Set Shell = CreateObject( "Shell.Application" )

' ファイル
strPath = "Desktop_info.htm"
Set OutFile = Fs.OpenTextFile( strPath, 2, True )

' HTML 骨格部分
OutFile.WriteLine "<HTML><HEAD><TITLE>ProcessList</TITLE>"
OutFile.WriteLine "<META http-equiv=""Content-Type"" content=""text/html; charset=shift_jis"">"
OutFile.WriteLine "<STYLE type=""text/css"">* { font-size:12px;}</STYLE>"
OutFile.WriteLine "</HEAD><BODY>"
OutFile.WriteLine "<TABLE>"
OutFile.WriteLine "<TR>"

OutFile.WriteLine "<TH style='background-color:gray;color:white' nowrap></TH>"
OutFile.WriteLine "<TH style='background-color:gray;color:white' nowrap>名称</TH>"
OutFile.WriteLine "<TH style='background-color:gray;color:white' nowrap>タイプ</TH>"
OutFile.WriteLine "<TH style='background-color:gray;color:white' nowrap>パス</TH>"
if bFlg then
	OutFile.WriteLine "<TH style='background-color:gray;color:white' nowrap>説明</TH>"
end if

OutFile.WriteLine "</TR>"

' デスクトップ
Set objFolder = Shell.NameSpace( 0 )
' アイテムコレクション
Set objFolderItems = objFolder.Items()

' HTML データ部分
nCnt = 0
For Each item in objFolderItems 
	OutFile.WriteLine "<TR>"
	strCss = ""
	if nCnt Mod 2 = 0 then
		strCss = "style='background-color:#D0D0D0;'"
	end if

	' 連番
	OutFile.WriteLine "<TD nowrap " & strCss & "><B>" & (nCnt + 1) & "</b></TD>"

	' 詳細データ
	OutFile.WriteLine "<TD nowrap " & strCss & "><B>" & objFolder.GetDetailsOf(item, 0)  & "</b></TD>"
	OutFile.WriteLine "<TD nowrap " & strCss & ">" & objFolder.GetDetailsOf(item, 2)  & "</TD>"
	OutFile.WriteLine "<TD nowrap " & strCss & ">" & item.Path  & "</TD>"

if bFlg then
	on error resume next
	OutFile.WriteLine "<TD nowrap " & strCss & ">" & objFolder.GetDetailsOf(item, -1)  & "</TD>"
	if Err.Number <> 0 then
		OutFile.WriteLine "<TD nowrap " & strCss & "></TD>"
	end if
	on error goto 0
end if

	OutFile.WriteLine "</TR>"
	nCnt = nCnt + 1
Next 

OutFile.WriteLine "</TABLE></BODY></HTML>"
OutFile.Close

WshShell.Run( "RunDLL32.EXE shell32.dll,ShellExec_RunDLL """ & _
	WshShell.CurrentDirectory & "\" & strPath & """" )