Цитата Iska:
По поводу же скрипта из #4, единственное, что могу предложить — поправить его так, дабы он удалял пустые папки, оставшиеся пустыми после удаления указанных ярлыков. »
|
Да, добавьте если не сложно.
Цитата Iska:
Кстати, вопрос — перечень в «arrTargetPaths» у Вас длинный? Может, стоит сделать чтение данного перечня из текстового файла?! »
|
Нет, перечень не длинный. Подразумевается использование данного скрипта в аддонах программ. Предполагается, что каждый такой аддон будет проверять только наличие ранее установленной версии одной конкретной программы, и если находит, то удаляет её папку и ярлыки. Устанавливаемые программы (в подавляющем большинстве случаев) имеют всего один исполняемый файл, а при инсталляции создают в меню "Пуск" свою собственную папку с 1-5 ярлыками в ней, так что если пользователь ничего не менял, и в названиях папки и расположенных в ней ярлыков (на исполняемый или иной файл) встречается одинаковое выражение (например, "7-Zip"), то можно смело удалять всю папку вместе с ярлыками. Наиболее сложная часть эпопеи с поиском, описанным в предыдущем посте, имеет место только в случае, когда пользователь переименовал папку и (или) ярлыки; если пользователь только перетащил папку программы вместе с ярлыками в другое место, то, насколько понимаю, необходимые поиск и удаление будут не очень сложными, тут поиск может быть организован не только по названию исполняемого файла, но и по конкретному выражению в названиях папок и ярлыков, например, "7-Zip".
P.S.
В идеале весь процесс работы по нахождению-удалению я вижу таким: при установке аддон запускает поиск по конкретному выражению в названиях папок и ярлыков:
- если оно найдено в названии папки - удаление этой папки вместе с ярлыками;
- если оно найдено только в названии ярлыка (ярлыков) - удаление этого ярлыка (ярлыков);
- если после удаления ярлыка (ярлыков) папка осталась пустой - удаление этой папки (разумеется, если это не сама папка меню "Программы" или расположенные в ней типа "Стандартные", "Автозагрузка", "Администрирование", "Утилиты" и т.п.);
- если ничего не найдено по конкретному выражению, то запуск поиска ярлыка (ярлыков) по названию исполняемого файла, при этом:
- если такой ярлык найден - удаление этого ярлыка (если после удаления ярлыка папка осталась пустой - удаление папки (за исключением вышеназванных стандартных)).
Вот, в принципе, так.