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.Echoはcscriptから起動した際にメッセージダイアログではなく、コンソールに出力


http://russiantea.dip.jp/vbswsh/3