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
Похожие статьи:





