У меня был тот же вопрос, но потом у меня был момент «духа». Вместо записи
x ~ y
напишите
y ~ x
Очевидно, что это соответствует «x» вместо «y», но отвечает «есть ли совпадение?». вопрос и простой обход DOM могут привести вас к правильному элементу более эффективно, чем цикл в javascript.
Я понимаю, что исходный вопрос был вопросом CSS, поэтому этот ответ, вероятно, совершенно не имеет значения, но другие пользователи Javascript могут споткнуться на вопрос через поиск, как я.
Необходимо было, вероятно, сделать это полностью новым вопросом, но я отвечу обновленный вопрос здесь также. Взгляните на раздел "Сценарии Паскаля: Код Удаления" в Документации Установки 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]).
Я думаю, что рекомендуемый подход должен определить, что удалить в разделе удаления. Обоснование состоит в том, что, что, если по любой причине пользователь решил поместить их собственные файлы в Ваш каталог установки, который они не хотели удаленный, или сохранил данные, которые они могли бы хотеть иметь в наличии (возможно, они удаляют, должен установить более новую версию?)
Однако я не знаю бесцеремонно, каков сценарий, но если Вы используете ISTool (настоятельно рекомендуют), просто добрался до раздела Uninstall Delete, и добавьте вещи, которые Вы хотите удаленный. Это должно представить все возможные варианты в хорошем GUI и генерировать сценарий для Вас.
Редактирование: пример из документации Установки Inno:
[UninstallDelete]
Type: files; Name: "{win}\MYPROG.INI"
, Но они сильно Вы не делаете чего-то как
[UninstallDelete]
Type: files; Name: "{app}\*.*"
ПРИМЕЧАНИЕ: не испытывайте желание использовать подстановочный знак здесь для удаления всех файлов в {приложение} каталог. Я настоятельно рекомендую против выполнения этого по двум причинам. Во-первых, пользователи обычно не ценят наличие их файлов данных, которые они вставляют каталог приложения, удаленный, не предупреждая (они могли бы только удалять его, потому что они хотят переместить его в другой диск, например). Лучше оставить на виду его конечным пользователям для ручного удаления их, если они хотят. Кроме того, если бы пользователь, оказалось, устанавливал программу в неправильном каталоге по ошибке (например, C:\WINDOWS) и затем пошел для удаления его то могли быть катастрофические последствия. Таким образом, снова не ДЕЛАЙТЕ ЭТОГО!
Вы не можете использовать InnoSetup для удаления чего-либо, что он не устанавливал, и Вы не должны хотеть делать так. Я для можно было бы быть очень недовольным, если бы я установил приложение, ввел много данных и затем решил использовать что-то еще вместо этого, которое считало бы те данные с Вашего приложения. Если Ваше удаление уничтожило всю работу, я уже сделал, я мог бы испытать желание приехать, ища Вас. И вероятно не купить Вас чашка кофе.
Или рассматривают случай, где я устанавливаю Ваше приложение в процессе оценки нескольких. Я пробую приложения и продолжаю возвращаться к Вашему, потому что мне нравится он немного лучше, и каждый раз, когда я ввожу больше данных. Тогда я решаю не сделать что-либо некоторое время, таким образом, я удаляю все тестовые приложения. Через неделю я решаю, что должен использовать Ваше приложение теперь, в конце концов, и я переустанавливаю его. Ой! Всей работы, я сделал тестирование его, что я теперь хотел использовать, не стало.
Вышеупомянутое - то, почему при удалении приложения оно оставляет позади что-либо, что Вы создали в папках, как конфигурационные файлы, файлы данных, и т.д. Это не знает то, что Вы хотите, чтобы это сделало с ними, таким образом, это оставляет их в покое.
Разве это не значение по умолчанию, если Ваш не определяют "uninsneveruninstall" для записи?
редактирование - Извините я не понял, что Вы говорили о недавно созданных файлах данных.