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

Похожие статьи:

  1. Существует ли раздел в реестре на VBScript

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *