Как настроить Установку Inno для удаления всего?

У меня был тот же вопрос, но потом у меня был момент «духа». Вместо записи

x ~ y

напишите

y ~ x

Очевидно, что это соответствует «x» вместо «y», но отвечает «есть ли совпадение?». вопрос и простой обход DOM могут привести вас к правильному элементу более эффективно, чем цикл в javascript.

Я понимаю, что исходный вопрос был вопросом CSS, поэтому этот ответ, вероятно, совершенно не имеет значения, но другие пользователи Javascript могут споткнуться на вопрос через поиск, как я.

21
задан OneNerd 14 March 2009 в 16:09
поделиться

4 ответа

Необходимо было, вероятно, сделать это полностью новым вопросом, но я отвечу обновленный вопрос здесь также. Взгляните на раздел "Сценарии Паскаля: Код Удаления" в Документации Установки Inno.

Для предоставления примера, как условно удалить файлы данных как часть процесса удаления:

[Code]

procedure DeleteBitmaps(ADirName: string);
var
  FindRec: TFindRec;
begin
  if FindFirst(ADirName + '\*.*', FindRec) then begin
    try
      repeat
        if FindRec.Attributes and FILE_ATTRIBUTE_DIRECTORY <> 0 then begin
          if (FindRec.Name <> '.') and (FindRec.Name <> '..') then begin
            DeleteBitmaps(ADirName + '\' + FindRec.Name);
            RemoveDir(ADirName + '\' + FindRec.Name);
          end;
        end else if Pos('.bmp', AnsiLowerCase(FindRec.Name)) > 0 then
          DeleteFile(ADirName + '\' + FindRec.Name);
      until not FindNext(FindRec);
    finally
      FindClose(FindRec);
    end;
  end;
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
  if CurUninstallStep = usUninstall then begin
    if MsgBox('Do you want to delete all data files?', mbConfirmation,
        MB_YESNO) = IDYES 
    then begin
      DeleteBitmaps(ExpandConstant('{app}'));
    end;
  end;
end;

, Но в зависимости от суммы материала необходимо вымыться, Вы могли бы быть более обеспечены для создания специальной программы помощника, которая является частью установки, и которая может быть выполнена во время удаления приложения (использующий запись в раздел [UninstallRun]).

12
ответ дан 29 November 2019 в 20:25
поделиться

Я думаю, что рекомендуемый подход должен определить, что удалить в разделе удаления. Обоснование состоит в том, что, что, если по любой причине пользователь решил поместить их собственные файлы в Ваш каталог установки, который они не хотели удаленный, или сохранил данные, которые они могли бы хотеть иметь в наличии (возможно, они удаляют, должен установить более новую версию?)

Однако я не знаю бесцеремонно, каков сценарий, но если Вы используете ISTool (настоятельно рекомендуют), просто добрался до раздела Uninstall Delete, и добавьте вещи, которые Вы хотите удаленный. Это должно представить все возможные варианты в хорошем GUI и генерировать сценарий для Вас.

Редактирование: пример из документации Установки Inno:

[UninstallDelete]
Type: files; Name: "{win}\MYPROG.INI"

, Но они сильно Вы не делаете чего-то как

[UninstallDelete]
Type: files; Name: "{app}\*.*"

ПРИМЕЧАНИЕ: не испытывайте желание использовать подстановочный знак здесь для удаления всех файлов в {приложение} каталог. Я настоятельно рекомендую против выполнения этого по двум причинам. Во-первых, пользователи обычно не ценят наличие их файлов данных, которые они вставляют каталог приложения, удаленный, не предупреждая (они могли бы только удалять его, потому что они хотят переместить его в другой диск, например). Лучше оставить на виду его конечным пользователям для ручного удаления их, если они хотят. Кроме того, если бы пользователь, оказалось, устанавливал программу в неправильном каталоге по ошибке (например, C:\WINDOWS) и затем пошел для удаления его то могли быть катастрофические последствия. Таким образом, снова не ДЕЛАЙТЕ ЭТОГО!

16
ответ дан 29 November 2019 в 20:25
поделиться

Вы не можете использовать InnoSetup для удаления чего-либо, что он не устанавливал, и Вы не должны хотеть делать так. Я для можно было бы быть очень недовольным, если бы я установил приложение, ввел много данных и затем решил использовать что-то еще вместо этого, которое считало бы те данные с Вашего приложения. Если Ваше удаление уничтожило всю работу, я уже сделал, я мог бы испытать желание приехать, ища Вас. И вероятно не купить Вас чашка кофе.

Или рассматривают случай, где я устанавливаю Ваше приложение в процессе оценки нескольких. Я пробую приложения и продолжаю возвращаться к Вашему, потому что мне нравится он немного лучше, и каждый раз, когда я ввожу больше данных. Тогда я решаю не сделать что-либо некоторое время, таким образом, я удаляю все тестовые приложения. Через неделю я решаю, что должен использовать Ваше приложение теперь, в конце концов, и я переустанавливаю его. Ой! Всей работы, я сделал тестирование его, что я теперь хотел использовать, не стало.

Вышеупомянутое - то, почему при удалении приложения оно оставляет позади что-либо, что Вы создали в папках, как конфигурационные файлы, файлы данных, и т.д. Это не знает то, что Вы хотите, чтобы это сделало с ними, таким образом, это оставляет их в покое.

4
ответ дан 29 November 2019 в 20:25
поделиться

Разве это не значение по умолчанию, если Ваш не определяют "uninsneveruninstall" для записи?

редактирование - Извините я не понял, что Вы говорили о недавно созданных файлах данных.

1
ответ дан 29 November 2019 в 20:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: