Windowsの「プログラムの追加と削除」に表示されるプログラム名を取得するスクリプト
マイクロさんの深いところから見つけました。
http://www.microsoft.com/japan/technet/scriptcenter/resources/wmifaq.mspx#ECPAC
自分にはわかりにくかったので、コメントを追加
strHost = "." Const HKLM = &H80000002 'アンインストール情報 '(「プログラムの追加と削除」に表示される) 'の入ったレジストリパス Const strBaseKey = _ "Software\Microsoft\Windows\CurrentVersion\Uninstall\" 'レジストリのサブキーを取得するために、 'WMIのStdRegProvを使用する Set objReg = GetObject("winmgmts://" & strHost & _ "/root/default:StdRegProv") 'レジストリパスから、サブキーを取得 objReg.EnumKey HKLM, strBaseKey, arrSubKeys 'サブキーを一つ一つ取り出して、 'プログラム名を表示する For Each strSubKey In arrSubKeys intRet = objReg.GetStringValue(HKLM, strBaseKey & strSubKey, _ "DisplayName", strValue) If intRet <> 0 Then intRet = objReg.GetStringValue(HKLM, strBaseKey & strSubKey, _ "QuietDisplayName", strValue) End If If (strValue <> "") and (intRet = 0) Then WScript.Echo strValue End If Next
これを適当に名前付けて(拡張子は「vbs」)実行すると・・・
- 直接起動 → メッセージボックスに一つ一つ表示
- wscript で実行(コマンドプロンプトから wscript pgList.vbs とか) → メッセージボックスに一つ一つ表示
- cscript で実行(コマンドプロンプトから cscript pgList.vbs とか) → コマンドプロンプト上に表示
メモ
WScript.Echoはcscriptから起動した際にメッセージダイアログではなく、コンソールに出力