2015-08-19 5 views
2

Я устанавливаю и удаляю некоторые сервисные приложения через раздел кода InnoSetup, как показано ниже.innosetup, удалить общую службу

ShellExec('', ExpandConstant('{app}\') + dExeName, '/install /silent', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode); 
    .... 
ShellExec('', ExpandConstant('{app}\') + dExeName, '/uninstall /silent', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode); 

Теперь у меня есть отдельное приложение, использующее ту же услугу. оба установщика приложений устанавливают и удаляют эти службы.

Мне нужно решение, которое деинсталлятор не должен удалять, если другое приложение все еще существует на компьютере.

Faruk. С уважением.

ответ

0

Оба установщика должны установить запись в реестре, используя раздел [Registry] (http://www.jrsoftware.org/ishelp/index.php?topic=registrysection), установив флаг uninsdeletekey.

В обоих деинсталляторы вы можете проверить, то ли еще установлено другое приложение, делая что-то вроде

if not RegKeyExists(HKEY_LOCAL_MACHINE, 'Software\Faruk\OtherSoftwareName') then 
begin 
    // The key exists 
    ShellExec('', ExpandConstant('{app}\') + dExeName, '/uninstall /silent', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode); 
end; 
Смежные вопросы