Новый таскбар Windows 7 отличается не только от дока макос, но также умом и сообразительностью. В частности, он очень обижается, когда к нему хотят прикрепить (pin) что-либо, отличное от .exe файла: скрипт, программу на питоне. Логику разработчиков легко понять: новый таскбар автоматически помещает прикрепляемые документы в контекстное меню программ. Например, если перетащить на таскбар текстовый документ, то к таскбару будет прикреплен notepad, а сам документ будет доступен по правому клику из списка 'pinned items'. К сожалению, у данного подхода есть две проблемы. Во-первых, нужно делать правый клик на иконке — лишнее движение, очень неудобное на тачпадах ноутбуков. Во-вторых, данный способ не работает для многих типов файлов, например — .bat файлов или скриптов на питоне. Гугление, как ни странно, быстрого ответа не дает. Поэтому, уважаемые коллеги, я вкратце законспектировал последовательность шагов, которая позволяет прикрепить к таскбару любой файл и сменить его иконку.
Прикрепляем к таскбару любую программу, например — notepad:
Нажимаем и исполняем команду
Для смены иконки также правый клик на ярлык notepad, properties, закладка shortcut, кликаем на 'change icon' и устанавливаем нужную иконку. К сожалению, иконка поменяется только у ярлыка в скрытой папке — в таскбаре останется старая, потому чтозасахарилось закешировалось. Для обновления кеша закрываем все программы, запускаем task manager и убиваем процесс explorer. Затем из верхнего меню task manager выбираем file, 'new task' и запускаем cmd. Набираем следующие команды:
После успешного удаления кеша запускаем explorer через тот же task manager. Вуаля — имеем иконку в таскбаре которая открывает нужный нам файл и выглядит как нам нужно:
Как уже говорилось, данный способ является достаточно глубокой кастомизацией и изначально создателями нового таскбара не предполагался. Поэтому получившаяся иконка, хотя и будет выглядеть как мы хотим и запускать что угодно, потеряет возможность ассоциироваться с запущенным приложением. Конечно, если на нее подвешен скрипт без GUI, то это не проблема. Но если при выполнении будет вызвана программа, то ее иконка не будет связана с нашей и будет показана отдельно. Если кто знает как windows 7 ассоциирует иконки а таскбаре и окна запущенных программ — поделитесь секретом :).
Шаг первый
Прикрепляем к таскбару любую программу, например — notepad:
Шаг второй
Нажимаем и исполняем команду
shell:user pinned
. В открывшейся папке выбираем «TaskBar» — в этой скрытой папке лежат ярлыки с таскбара. Правый клик на ярлык notepad, выбираем properties, закладку shortcut и в поле target в кавычках вписываем имя файла, который хотим прикрепить к таскбару. Например, .bat файл. Теперь клик по иконке notepad в таскбаре откроет или запустит выбранный файл.Шаг третий
Для смены иконки также правый клик на ярлык notepad, properties, закладка shortcut, кликаем на 'change icon' и устанавливаем нужную иконку. К сожалению, иконка поменяется только у ярлыка в скрытой папке — в таскбаре останется старая, потому что
attrib -h %userprofile%\AppData\Local\IconCache.db
del %userprofile%\AppData\Local\IconCache.db
После успешного удаления кеша запускаем explorer через тот же task manager. Вуаля — имеем иконку в таскбаре которая открывает нужный нам файл и выглядит как нам нужно:
Недостатки
Как уже говорилось, данный способ является достаточно глубокой кастомизацией и изначально создателями нового таскбара не предполагался. Поэтому получившаяся иконка, хотя и будет выглядеть как мы хотим и запускать что угодно, потеряет возможность ассоциироваться с запущенным приложением. Конечно, если на нее подвешен скрипт без GUI, то это не проблема. Но если при выполнении будет вызвана программа, то ее иконка не будет связана с нашей и будет показана отдельно. Если кто знает как windows 7 ассоциирует иконки а таскбаре и окна запущенных программ — поделитесь секретом :).