Проблема с получением VBScript для перечисления программ, установленных в 32-битной папке - PullRequest
0 голосов
/ 23 октября 2018

У меня есть скрипт, который возьмет все программы в папке «Program Files» на диске C и выведет их в текстовый файл.Мне нужно, чтобы он также мог помещать программы, установленные в папку «Program Files (x86)», а также.Я собрал этот код из пары разных источников, поэтому у меня возникли небольшие трудности с ним.

Вот код:

Const HKEY_LOCAL_MACHINE = &H80000002
Dim strComputer, strKeyPath
Dim objReg, strSubkey, arrSubkeys
Dim Name, Version

'Gets ready for the part where it makes the text file
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
strDirectory = "InstalledPrograms.txt"
strDirectory = objFSO.BuildPath(WshShell.SpecialFolders("Desktop"), strDirectory)

Set objFSO=CreateObject("Scripting.FileSystemObject")
outFile= strDirectory
Set objFile = objFSO.CreateTextFile(outFile, True)

strComputer = "."

'Registry key path of Control panel items for installed programs
strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"

Set objReg=GetObject( _
    "winmgmts:{impersonationLevel=impersonate}!\\" & _
    strComputer & "\root\default:StdRegProv")

objReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubkeys

'Enumerate registry keys.
For Each strSubkey In arrSubkeys
    objReg.GetStringValue HKEY_LOCAL_MACHINE, strKeyPath & strSubkey, "DisplayName", Name
    If Name <> "" Then
        objReg.GetStringValue HKEY_LOCAL_MACHINE, strKeyPath & strSubkey, "DisplayVersion", Version
        objFile.Write vbCrLf & Name & " | " & Version
        objFile.Write "  "
    End If
Next

WScript.Echo "Installed Programs listed successfully in the InstalledPrograms.txt file on your desktop."
WScript.Quit
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...