Cryzer

Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Здравствуйте, help'еры! Я хочу вас очень-очень попросить помочь... Уж и не знаю, куда деваться... Значит, проблема такова: Предположим, в реестре ключ HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ani с параметром ProgID имеет значение IrfanView.ANI. Также присутствует ключ HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bmp с ProgID=IrfanView.BMP. Далее, пользователь запускает мой инсталлятор и выбирает ассоциацию только с *.ani (потому что, к напримеру, у пользователя с *.bmp уже другая прога ассоц.). Он нажал "Установить" - всё завершилось. Теперь формат *.ani запускается этой программой. Но дело в том, что если в вышенаписанном ключе HKCU\...\FileExts\.bmp до установки уже было ProgID=IrfanView.BMP, то в настройках самой программы будет присутствовать (частичная) "ассоциация" с ним => и как следствие, после применении любых настроек (т.е. после нажатия "Применить" в окне) для полной ассоц. эта прога добавит ключи HKLM\SOFTWARE\Classes\... и формат *.bmp уже станет открываться в ней! Это нехорошо! Требуется следующее: Пользователь выбрал ТОЛЬКО *.ani, поэтому надо, чтобы во время установки (во время создавания ключей) InnoSetup определил наличие (невыбранного формата) в HKCU\...\FileExts\.bmp в параметре ProgID значения IrfanView.BMP. Если IrfanView.BMP не существует (т.е. что-то другое написано или вообще нет ключа), то установка продолжается как обычно, если значение IrfanView.BMP присутствует, то оно меняется на "" (пустое). И чтобы всё это было автоматически, без сообщений. И тогда всё будет так, как пользователю нужно. Вот приведу маленький кусок своего скрипта: Код: ... [Components] Name: "main\ass\ani"; Description: "*.ani"; Types: full custom_clean [Registry] ... ;(тут у меня написаны строчки типа Root: HKLM; Subkey: "SOFTWARE\Classes\... для ассоциирования, не вижу смысла их вам расписывать) ... Root: HKCU; Subkey: "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ani"; ValueType: string; ValueName: ""; ValueData: ""; Components: main\ass\ani Root: HKCU; Subkey: "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ani"; ValueType: string; ValueName: "ProgID"; ValueData: "IrfanView.ANI"; Flags: uninsdeletevalue uninsdeletekeyifempty; Components: main\ass\ani ... | Я так понимаю, без Паскаля не обойтись... =(( Даже не знаю как поблагодарить тех, кто поможет реализовать данную фичу!!! | Всего записей: 102 | Зарегистр. 22-09-2007 | Отправлено: 14:23 06-10-2007 | Исправлено: Cryzer, 14:35 06-10-2007 |
|