У меня есть скрипт, который возьмет все программы в папке «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