Цитата K.A.V.:
ваши скрипты определения установленного ПО будут весьма полезны для SFX Creator »
|
Думаю, что коллекционировать скрипты определения установленного ПО не оч. хорошая идея.
Во-первых, таких скриптов будет без счёта, а во-вторых, вполне достаточно проверять наличие имени приложения в ключе, куда его помещает путное ПО :
SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\имя приложения
Для бестолкового же ПО, проверять наличие конкретных (определённых пользователем в скрипте) ключей и файлов. (Так вроде уже реализовано в SFX Creator_е) С перспективой определения и сравнения версий исполняемых файлов и библиотек и выдачи соответствующего сообщения...
Отдельно надо выделить проверку наличия установленного ПО посредством
MSI установщиков.
Делается это обычно по коду продукта. Либо упрощённо, по наличию этого кода в соответствующем ключе реестра либо более "тщательно", но громоздко с помощью макроса опубликованного
kotkovets и включенного в справочник.
Сейчас файл нужного msi инсталлятора, приходится вручную открывать с помощью MSI редактора и в таблице
Property искать
ProductCode, который и использовать в скрипте.
Вот тут есть смысл попробовать упростить пользователю задачу по нахождению этого кода продукта в MSI установщике.
Для автоматизации действий, можно экспортировать
Property с помощью известной утилитки
MsiDb.Exe (и ключей) в файл.
http://msdn.microsoft.com/en-us/libr...%3Dvs.85).aspx
Результат экспорта - "специализированный" файл, с расширением idt, - по сути обыкновенный текстовый файл, в котором
находим строку ProductCode, напротив которой нужное нам значение - {разные цифирки}.
Скрипт должен изъять это значение и поместить куда надо... (Т.е. надо найти в файле
Property.idt строку, начинающуюся с "ProductCode" и поместить в переменную всё что есть в этой строке в скобках {}, кроме самой записи ProductCode. )
Это было бы действительно весьма полезно... (для начала, сделать хотя бы только утилитку для извлечения ProductCode из MSI файла)