IT→ Определение установлена ли программа на VBScript
Дек 25, 2011
![](https://tdlite.ru/wp-content/uploads/2022/01/Registry_Editor_icon.png)
При развертывании программ, системному администратору довольно часто требуется проверить наличие уже установленного приложения на компьютере пользователя. Лучшим способом проверить, установлена программа или нет, является просмотр его значений в системном реестре.
Операционная система хранит всю информацию об установленных программах в следующих ветках реестра.
Для 32-х битных версий:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
Для 64-х битных версий:
HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
Это именно та информация, которая обычно выводится в списке «Установка и удаление программ«. Для того, чтобы наиболее точно определить наличие приложения на компьютере, необходимо проверять сразу две ветки. Если запись о программе есть хотя бы в одной, то это значит что программа установлена.
Следующая функция, написанная на VBScript, проверяет наличие установленной программы на компьютере пользователя. Однако такую проверку можно осуществить используя другие языки программирования, в которых есть возможность обращаться к реестру.
Листинг 1. Функция проверки установленного приложения.
Function CheckInstall(Name) On Error Resume Next Set WshShell = CreateObject("WScript.Shell") ' Поиск 32-х битной версии приложения Err.Clear WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & Name & "\") If Err.Number <> 0 Then InstalledOn32 = False Else InstalledOn32 = True End If ' Поиск 64-х битной версии приложения Err.Clear WshShell.RegRead("HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\" & Name & "\") If Err.Number <> 0 Then InstalledOn64 = False Else InstalledOn64 = True End If ' Проверка наличия любой версии приложения If InstalledOn32 or InstalledOn64 Then CheckInstall = True Else CheckInstall = False End If End Function
Похожие статьи: