【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++ で作成したデスクトップの
アイコンの位置情報と共に「保存可能な実体を持つファイル」を判断する為に使います
01.bFlg = True
02. 
03.' 必要なオブジェクト
04.Set Fs = CreateObject( "Scripting.FileSystemObject" )
05.Set WshShell = CreateObject( "WScript.Shell" )
06.Set Shell = CreateObject( "Shell.Application" )
07. 
08.' ファイル
09.strPath = "Desktop_info.htm"
10.Set OutFile = Fs.OpenTextFile( strPath, 2, True )
11. 
12.' HTML 骨格部分
13.OutFile.WriteLine "<HTML><HEAD><TITLE>ProcessList</TITLE>"
14.OutFile.WriteLine "<META http-equiv=""Content-Type"" content=""text/html; charset=shift_jis"">"
15.OutFile.WriteLine "<STYLE type=""text/css"">* { font-size:12px;}</STYLE>"
16.OutFile.WriteLine "</HEAD><BODY>"
17.OutFile.WriteLine "<TABLE>"
18.OutFile.WriteLine "<TR>"
19. 
20.OutFile.WriteLine "<TH style='background-color:gray;color:white' nowrap></TH>"
21.OutFile.WriteLine "<TH style='background-color:gray;color:white' nowrap>名称</TH>"
22.OutFile.WriteLine "<TH style='background-color:gray;color:white' nowrap>タイプ</TH>"
23.OutFile.WriteLine "<TH style='background-color:gray;color:white' nowrap>パス</TH>"
24.if bFlg then
25.    OutFile.WriteLine "<TH style='background-color:gray;color:white' nowrap>説明</TH>"
26.end if
27. 
28.OutFile.WriteLine "</TR>"
29. 
30.' デスクトップ
31.Set objFolder = Shell.NameSpace( 0 )
32.' アイテムコレクション
33.Set objFolderItems = objFolder.Items()
34. 
35.' HTML データ部分
36.nCnt = 0
37.For Each item in objFolderItems
38.    OutFile.WriteLine "<TR>"
39.    strCss = ""
40.    if nCnt Mod 2 = 0 then
41.        strCss = "style='background-color:#D0D0D0;'"
42.    end if
43. 
44.    ' 連番
45.    OutFile.WriteLine "<TD nowrap " & strCss & "><B>" & (nCnt + 1) & "</b></TD>"
46. 
47.    ' 詳細データ
48.    OutFile.WriteLine "<TD nowrap " & strCss & "><B>" & objFolder.GetDetailsOf(item, 0)  & "</b></TD>"
49.    OutFile.WriteLine "<TD nowrap " & strCss & ">" & objFolder.GetDetailsOf(item, 2)  & "</TD>"
50.    OutFile.WriteLine "<TD nowrap " & strCss & ">" & item.Path  & "</TD>"
51. 
52.if bFlg then
53.    on error resume next
54.    OutFile.WriteLine "<TD nowrap " & strCss & ">" & objFolder.GetDetailsOf(item, -1)  & "</TD>"
55.    if Err.Number <> 0 then
56.        OutFile.WriteLine "<TD nowrap " & strCss & "></TD>"
57.    end if
58.    on error goto 0
59.end if
60. 
61.    OutFile.WriteLine "</TR>"
62.    nCnt = nCnt + 1
63.Next
64. 
65.OutFile.WriteLine "</TABLE></BODY></HTML>"
66.OutFile.Close
67. 
68.WshShell.Run( "RunDLL32.EXE shell32.dll,ShellExec_RunDLL """ & _
69.    WshShell.CurrentDirectory & "\" & strPath & """" )