Списки переходов Windows 7
Для начала загрузите Visual Studio 2008 Express Edition или более полную версию (C# или VB). Либо просто возьмите Visual Studio 2010 Beta 2 — она уже доступна и стоит того, чтобы ее загрузить. Все Express-издания бесплатны, и любая из версий (2008 или 2010) будет прекрасно работать с кодом, сопутствующим этой статье.
Что такое список переходов?
Списки переходов — новая концепция в Windows 7 , позволяющая разработчику создавать ярлыки (shortcuts) для пользователей прямо в контекстном меню значка своей программы на панели задач или в меню Пуск (Start). Эти ярлыки могут быть простыми ссылками на папку документов или библиотеку данного приложения, либо ссылками на командную строку запуска того же приложения с передачей какого-либо параметра для выполнения какой-то специфической задачи.
Вы можете использовать этот способ в Live Messenger для изменения онлайнового состояния, вывода нового окна сообщения или для открытия веб-страниц, относящихся к приложению. В общем, все это ярлыки — к URL или тому же исполняемому файлу с аргументом, вызывающим некое изменение.
Windows API Code Pack
Windows API Code Pack дает возможность задействовать преимущества специфических средств Windows Vista и Windows 7, недоступных через универсальную инфраструктуру, а также неуправляемых функций, которые не имеют смысла в общеязыковой исполняющей среде (CLR), используемой во всех поддерживаемых конфигурациях. Большая часть таких средств состоит из interop-оболочек (позволяющих взаимодействовать с неуправляемыми функциями из управляемого кода).
С помощью Code Pack вы получаете доступ к новой панели задач, Direct2D, DirectWrite, свойствам оболочки, спискам переходов и др. В комплект также включены многочисленные проекты с примерами кода, которые послужат вам отправной точкой, так что избегать новых возможностей нет никаких причин!
Добавление списка переходов
Добавить список переходов легко. Создав сам список, включите в него нужные элементы (ярлыки файлов или папок и задач). Затем можно выбрать, как будут показываться самые последние или часто используемые документы. Windows управляет списком документов пользователя, что снимает с вас часть работы.
Важно отметить, что для внесения любых изменений список нужно создавать заново. Иначе говоря, вы заменяете старый список новым, а не обновляете его.
Вот как все это делается.
Сначала добавьте две обязательные ссылки из Windows API Code Pack. Вы можете либо скомпилировать проект и ссылаться на DLL, либо напрямую включить необходимые проекты в свое решение:
Для удобства можно добавить пространство имен к блоку using, чтобы потом набирать более короткий текст:
Класс Microsoft.WindowsAPICodePack.Taskbar.JumpList — то место, где разворачивается большая часть действа. Для создания списка предназначен статический метод-фабрика CreateJumpList. Всегда начинайте с вызова этого метода, даже если приложение ранее создавало список переходов.
Private Sub CreateJumpList()
Dim jl As JumpList = JumpList.CreateJumpList()
private void CreateJumpList()
JumpList jl = JumpList.CreateJumpList();
Далее у вас есть выбор из нескольких вариантов — в зависимости от того, что именно вы хотите увидеть в списке. Базовой группой является список файлов. Вы можете выбрать отображение Recent files (последние файлы), Frequent files (часто используемые файлы) или ни один из них, но не оба варианта одновременно. Если вы ничего не выбираете на этом этапе, то автоматически получите вариант Recent files — при условии, что у вас есть зарегистрированный тип файлов.
‘ Показываем пользовательские файлы: Recent, Frequent или None
// Показываем пользовательские файлы: Recent, Frequent или None
jl.KnownCategoryToDisplay = JumpListKnownCategoryType.Recent;
Теперь вы можете добавить одну или более собственных категорий элементов. Это могут быть либо папки, либо файлы. Здесь действуют два очень важных правила.
- Файлы/папки должны существовать! При необходимости проверьте путь перед добавлением JumpListItem; если его нет, произойдет сбой.
- Добавляемые файлы должны относиться к типу, зарегистрированному для вашего приложения; в ином случае произойдет сбой или даже хуже: исключение будет сгенерировано не в той строке, где вы добавляете такие файлы, а по окончании настройки и попытке обновления списка.
В данном случае я закомментировал последний элемент, но вы могли бы использовать JumpListItem для реальных файлов в файловой системе и объекты JumpListLink для ссылок, не относящихся к файловой системе. И вновь не добавляйте JumpListItem, если не уверены в его наличии и в том, что он зарегистрирован.
‘ Добавляю свои ссылки (существительные)
Dim catActions As New JumpListCustomCategory(«Destinations»)
New JumpListLink(Environment.GetFolderPath(Environment.SpecialFolder.MyPictures), «My Pictures»), _
New JumpListLink(«http://blogs.msdn.com/coding4fun», «Visit Coding4Fun»), _
New JumpListLink(«http://code.msdn.microsoft.com/WindowsAPICodePack», «Windows API Code Pack»))
// Добавляю свои ссылки (существительные)
JumpListCustomCategory catActions = new JumpListCustomCategory(«Destinations»);
new JumpListLink(Environment.GetFolderPath(Environment.SpecialFolder.MyPictures), «My Pictures»),
new JumpListLink(«http://blogs.msdn.com/coding4fun», «Visit Coding4Fun»),
new JumpListLink(«http://code.msdn.microsoft.com/WindowsAPICodePack», «Windows API Code Pack»)
Вы можете добавить одну или более задач как ссылки на исполняемые файлы, используя метод AddUserTasks объекта JumpList. При этом либо создавайте несколько объектов и добавляйте их как переменный список аргументов, либо добавляйте их по одному единовременно, как это сделал я.
‘ Добавляем задачи наших пользователей (глаголы)
jl.AddUserTasks(New JumpListLink(Path.Combine(systemFolder, «notepad.exe»), «Open Notepad») _
‘ Добавляем задачи наших пользователей (глаголы)
jl.AddUserTasks(new JumpListLink(Path.Combine(systemFolder, «notepad.exe»), «Open Notepad»)
IconReference = new IconReference(Path.Combine(systemFolder, «notepad.exe»), 0)
Свойство IconReference указывает на значок, ссылаясь на DLL- или EXE-файл и задавая индекс в этом файле. Если вы хотите получить значок по умолчанию для исполняемого файла, с которым вы осуществляете связывание, указывайте EXE-файл с нулевым индексом.
В список можно добавлять разделители. Разделитель представлен классом JumpListSeparator и может быть добавлен вызовом AddUserTasks.
Последние ссылки в списке переходов указывают на наш же исполняемый файл. Это наиболее распространенный вариант использования списков перехода. Простой список с последними или часто используемыми файлами, конечно же, — штука хорошая, но возможность инициировать некие операции в самой программе, даже если она не запущена, по-настоящему удобна. Это почти что меню параметров командной строки запуска приложения!
Команды в списке, запускающие операции в самом приложении, требуют вызова этого приложения с разными аргументами. Помните, что это не настоящее меню — вы не получите событие Click. Вместо этого нужно обрабатывать аргумент, переданный вашей программе, даже если она уже выполняется.
Первый аргумент в командной строке всегда является полным именем исполняемого файла (вместе с путем). Свойство Arguments позволяет указывать аргументы командной строки, напрямую не видимые пользователям. В этом примере я определил три аргумента-заглушки. Если один из них передается, приложение меняет фон метки и сообщает, какой аргумент был передан.
jl.AddUserTasks(New JumpListLink(Assembly.GetEntryAssembly().Location, «Action 1 (Green)») _
jl.AddUserTasks(new JumpListLink(Assembly.GetEntryAssembly().Location, «Action 1 (Green)»)
IconReference = new IconReference(Assembly.GetEntryAssembly().Location, 0),
Ссылки по теме
Помощь |
Задать вопрос | |
программы | |
обучение | |
экзамены | |
компьютеры | |
ICQ-консультанты | |
Skype-консультанты | |
Общая справка | |
Как оформить заказ | |
Тарифы доставки | |
Способы оплаты | |
Прайс-лист | |
Карта сайта | |
О нас |
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО. На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям. Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе. Использование списка переходов в Windows 7 (Часть 2) | |
| Шрифт: |
Команды
Группа команд состоит из команд панели задач (Открыть приложение, Закрепить программу на панели задач и Закрыть приложение) и пользовательских команд, которые определяются самим программным обеспечением. Команды относятся ко всей программе, а не только к открытому окну или документу. Команды нельзя блокировать или удалить из списка переходов.
Исключения. Команды могут заменяться или перемещаться в разные группы только в следующих случаях:
- Набор отличных друг от друга команд может располагаться в списке переходов через разделитель;
- Некоторые команды могут не отображаться до тех пор, пока пользователь ими не пользовался.
Для того чтобы пользователь не запутался в командах, используются стандартные названия команд, т.е. такие же, как и в самой программе.
В задачах нет команд, связанных с закрытием приложения, т.к. эти команды уже присутствуют в списке команд из панели задач.
Значки команд
В группе задач значки для команд отображаются только в том случае, если он поможет пользователю понять, для чего используется данная команда.
В данном случае нужно обратить внимание на значки в группе задачи
Расположение файлов
Список недавно использовавшихся элементов является динамическим, независимо от приложения, для которого используется список переходов.
Список назначений использует автоматическое обновление недавно используемых элементов. Автоматические назначения управляется самой системой, в них входят последние приложения, которые открывал пользователь. В группу назначения включаются следующие категории:
- Категория «Последние» включает в себя программы и документы, которые в последнее время открывал или создавал пользователь в текущем приложении:
Категория «Часто используемые» включает в себя существующее содержимое, к которому пользователи часто обращаются. Часто используемые назначения сортируются по количеству просмотра. Самые посещаемые элементы расположены сверху.
В некоторых случаях существует еще пользовательский список назначений. Он может основываться на разных факторах в том случае, если используется список назначений «Часто используемые» или «Последние», но необходимо предоставить полный контроль в действиях пользователя связанного с текущей программой.
- Пользовательские версии списков «Часто используемые» или «Последние» создаются в том случае, если предыдущие нормально работают, но для программы необходимо дополнительное управление. Например, некоторым программам отслеживать поведение программы в случае выбора некоторых команд. В данном примере используются «Часто используемые» списки назначений вместе с дополнительной сортировкой, потому что между этими списками существует значительная разница.
- В другом случае, для увеличения пользовательских возможностей используется другой вид пользовательских списков назначения. Часто эти списки помогают выполнять пользователям те задания, которых нет в группе задачи и в списках назначений по умолчанию. Например, создание новых сообщений, просмотр видео и многое другое.
Управление списками переходов при помощи системного реестра
Можно управлять количеством отображаемых в списке перехода недавно использовавшихся элементов. Для этого нужно зайти в свойства панели задач и меню Пуск, перейти на вкладку Меню Пуск, нажать на кнопку Настроить и выбрать количество элементов, как показано на скриншоте:
А также можно воспользоваться редактором системного реестра:
Статья опубликована в рамках конкурса «Наш выбор — Windows 7!». Оригинальный стиль автора сохранен.