Мне нужно заставить директиву CreateUninstallRegKey
в разделе [Setup]
только создать ключ реестра для удаления, если это необходимо.Inno Setup: Создать ключ реестра только при необходимости
Например, если я устанавливаю условие для создания ключа реестра для удаления, его нужно создавать только при условии, что условие выполнено. В противном случае ключ реестра деинсталляции не должен быть создан.
Как это сделать в Inno Setup?
ОБНОВЛЕНО ВОПРОС
Код я написал это:
[Setup]
CreateUninstallRegKey=RegKeyDeterminer
[Code]
function RegKeyDeterminer(): Boolean;
begin
Result:= ISDoneError = True;
if ISDoneError = True then Result:= True;
end;
С помощью этого кода ключа реестра Удаление всегда создает. (Это должно быть что-то неправильно в коде, который я написал.)
Удалить ключ реестра не должен, если ISDoneError = True.
Удалить ключ реестра должен быть создан, если ISDoneError = False.
ISDoneError
имеет только Истинные или ложные значения. (Это булева функция в ISDone.dll
которая является Dynamic Link Library, который используется для извлечения файлов из 7-Zip, RAR, Бинарные и т.д. архивы установки Inno.)
Это условия. Если вы видите ошибки или ошибки установки условий, то исправьте мой код.
Thank you.
* "Если бы я поставил условие" * - в каком состоянии? Можете ли вы привести нам пример, когда вам нужно создать ключ, а когда нет? –
Хорошо, не давая вам мое состояние, я сделал свою работу хуже. См. Мой ОБНОВЛЕННЫЙ ВОПРОС. – GTAVLover
Ваше решение для обработки ошибок выглядит неправильно. Вы не должны позволять установщику даже закончить, когда что-то пойдет не так. Не взламывайте его **, притворяясь **, что установщик не закончил. –