Разное - [решено] Автоматизация удаления ярлыков в Панели задач

Ответить
Аватара пользователя
specialist

Разное - [решено] Автоматизация удаления ярлыков в Панели задач

Сообщение specialist »

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

Захламленный новыми ярлыками рабочий стол было решено чистить их перемещением в каталог Soft

в результате подсказки на одном из форумов, родилось пару строк:

FORFILES /P "%public%\desktop" /M *.lnk /D %DATE% /C "cmd /c move /y @path "%public%\desktop\Soft""

FORFILES /P "%userprofile%\desktop" /M *.lnk /D %DATE% /C "cmd /c move /y @path "%public%\desktop\Soft""

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



аналогично решил поступить с ярлыками в панели задач

FORFILES /S /P "%AppData%\Microsoft\Internet Explorer\Quick Launch" /M *.lnk /D %DATE% /C "cmd /c del @path /f /q"

но вот незадача: ярлыки физически удаляются, но на панели задач остаются дохлые иконки, при нажатии на которые сообщается что не удается открыть этот элемент, т.к. он возможно был удален, перемещен и т.д. и предлагает удалить ярлык (после перезагрузки или перелогина все остается на своих местах). вот и интересно где винда еще может хранить инфу...



Решение:

вобщем для себя задачу решил таким образом:

в операциях WPI назначенных до установки программ выполняется



Код:

Код: Выделить всё

REG EXPORT HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband "%temp%\taskband.reg"

а после выполнения всех установок чистятся от новых ярлыков по вышеприведенной схеме соответствующие каталоги и запускается батник





Код:

Код: Выделить всё

FORFILES /P "%public%\desktop" /M *.lnk /D %DATE% /C "cmd /c move /y @path "%public%\desktop\Программы""
FORFILES /P "%userprofile%\desktop" /M *.lnk /D %DATE% /C "cmd /c move /y @path "%public%\desktop\Программы""
FORFILES /S /P "%AppData%\Microsoft\Internet Explorer\Quick Launch" /M *.lnk /D %DATE% /C "cmd /c del @path /f /q"
FORFILES /P "%systemdrive%\Users\Default\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch" /M *.lnk /D %DATE% /C "cmd /c del @path /f /q"
reg import "%temp%\taskband.reg"
del /f /q "%temp%\taskband.reg"
taskkill /f /im explorer.exe
start "" explorer.exe

который перезаписывает нужную ветку реестра данными снятыми до начала установки всех программ и перезапускает проводник
Аватара пользователя
Казбек

Re: Разное - [решено] Автоматизация удаления ярлыков в Панели задач

Сообщение Казбек »

specialist,

Ярлыки находятся по пути:



Код:

Код: Выделить всё

C:\Users\\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar

В реестре:



Код:

Код: Выделить всё

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband

Пробуйте так:



Код:

Код: Выделить всё

DEL /F /S /Q /A "%AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\*"
REG DELETE HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband /F
Аватара пользователя
specialist

Re: Разное - [решено] Автоматизация удаления ярлыков в Панели задач

Сообщение specialist »

Казбек, благодарю за внесение ясности (реестр)


Цитата:



/S Рекурсивное выполнение программы forfiles

во всех подпапках, аналогично "DIR /S"



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

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



ради интереса просто закинул в %AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\ ярлык одной из программ, но на панели он не появился, как следствие делаем вывод что нужен комплекс из файла и записи в вышеуказанный ключ реестра



ради чистоты эксперимента поставил: mail ru agent / yandex browser / viber - каждая создала свой ярлык на панели задач. тут же штатно деинсталлировал их и ярлыки этих приложений из панели задач после исчезли, оставив все остальные их некасающиеся ярлыки в нетронутом виде. как следствие напрашивается вывод что в установщиках/деинсталляторах успешно применяется некий нужный мне алгоритм импорта / экспорта в значения параметров Favorites и FavoritesResolve раздела HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband



как бы его вычленить для самостоятельного применения...
Аватара пользователя
Казбек

Re: Разное - [решено] Автоматизация удаления ярлыков в Панели задач

Сообщение Казбек »

Цитата specialist:



как бы его вычленить для самостоятельного применения...
Разное - [решено] Автоматизация удаления ярлыков в Панели задач




Запустите Process Monitor до установки. Проанализируйте записи сделанные программой, можно задать отображение записей только по реестру.
Аватара пользователя
specialist

Re: Разное - [решено] Автоматизация удаления ярлыков в Панели задач

Сообщение specialist »

вобщем для себя задачу решил таким образом:

в операциях WPI назначенных до установки программ выполняется

REG EXPORT HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband "%temp%\taskband.reg"

а после выполнения всех установок чистятся от новых ярлыков по вышеприведенной схеме соответствующие каталоги и запускается батник



Код:

Код: Выделить всё

reg import "%temp%\taskband.reg"
del /f /q "%temp%\taskband.reg"
taskkill /f /im explorer.exe
start "" explorer.exe

который перезаписывает нужную ветку реестра данными снятыми до начала установки всех программ и перезапускает проводник
Ответить

Вернуться в «Microsoft Windows 8 и 8.1»