IT→ Определение установлена ли программа на VBScript
Дек 25, 2011
При развертывании программ, системному администратору довольно часто требуется проверить наличие уже установленного приложения на компьютере пользователя. Лучшим способом проверить, установлена программа или нет, является просмотр его значений в системном реестре.
Операционная система хранит всю информацию об установленных программах в следующих ветках реестра.
Для 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
Похожие статьи: