Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 8 и 8.1 (http://forum.oszone.net/forumdisplay.php?f=116)
-   -   [решено] Автоматизация удаления ярлыков в Панели задач (http://forum.oszone.net/showthread.php?t=308978)

specialist 09-12-2015 14:37 2583059

Автоматизация удаления ярлыков в Панели задач
 
Итак, имеем сборник 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

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

Казбек 09-12-2015 14:51 2583061

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

C:\Users\<UserName>\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 09-12-2015 15:16 2583066

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

/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

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

Казбек 09-12-2015 15:20 2583070

Цитата:

Цитата specialist
как бы его вычленить для самостоятельного применения... »

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

specialist 10-12-2015 15:08 2583407

вобщем для себя задачу решил таким образом:
в операциях 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

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


Время: 21:35.

Время: 21:35.
© OSzone.net 2001-