Списки переходів windows 7

У Windows 7 з`явилося дуже багато нововведень для розробників. До них відносяться більш досконала підсистема візуалізації, нові API датчиків і визначення місцезнаходження, бібліотеки файлів, федеративний пошук і, звичайно ж, поліпшена панель задач. Ця стаття присвячена списками переходів - вони замінюють контекстні меню в області сповіщень.

Для початку завантажте 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, або безпосередньо включити необхідні проекти в своє рішення:

Списки переходів Windows 7

Для зручності можна додати простір імен до блоку using, щоб потім набирати більш короткий текст:

Visual Basic

Imports Microsoft.WindowsAPICodePack.Taskbar

Imports Microsoft.WindowsAPICodePack.Shell

Visual C #

using Microsoft.WindowsAPICodePack.Taskbar;

using Microsoft.WindowsAPICodePack.Shell;

Клас Microsoft.WindowsAPICodePack.Taskbar.JumpList - то місце, де розгортається велика частина дійства. Для створення списку призначений статичний метод-фабрика CreateJumpList. Завжди починайте з виклику цього методу, навіть якщо додаток раніше створювало список переходів.

Visual Basic

Private Sub CreateJumpList ()

Dim jl As JumpList = JumpList.CreateJumpList ()

Visual C #

private void CreateJumpList ()

{

JumpList jl = JumpList.CreateJumpList ();

Далі у вас є вибір з кількох варіантів - в залежності від того, що саме ви хочете побачити в списку. Базовою групою є список файлів. Ви можете вибрати відображення Recent files (останні файли), Frequent files (часто використовувані файли) або жоден з них, але не обидва варіанти одночасно. Якщо ви нічого не вибираєте на цьому етапі, то автоматично отримаєте варіант Recent files - за умови, що у вас є зареєстрований тип файлів.

Visual Basic




`Показуємо призначені для користувача файли: Recent, Frequent або None

jl.KnownCategoryToDisplay = JumpListKnownCategoryType.Recent

Visual C #

// Показуємо призначені для користувача файли: Recent, Frequent або None
jl.KnownCategoryToDisplay = JumpListKnownCategoryType.Recent;

Тепер ви можете додати одну або більше власних категорій елементів. Це можуть бути або папки, або файли. Тут діють два дуже важливих правила.

  1. Файли / папки повинні існувати! При необхідності перевірте шлях перед додаванням JumpListItem; якщо його немає, відбудеться збій.
  2. Додаються файли повинні ставитися до типу, зареєстрованому для вашого Програми- в іншому випадку відбудеться збій або навіть гірше: виключення буде згенеровано не в тому рядку, де ви додаєте такі файли, а після закінчення настройки і спробі оновлення списку.

В даному випадку я закоментувавши останній елемент, але ви могли б використовувати JumpListItem для реальних файлів в файлову систему і об`єкти JumpListLink для посилань, що не відносяться до файлової системи. І знову не додавайте JumpListItem, якщо не впевнені в його наявності і в тому, що він зареєстрований.

Visual Basic

`Додаю свої посилання (іменники)

Dim catActions As New JumpListCustomCategory ( "Destinations")

catActions.AddJumpListItems (

New JumpListLink (Environment.GetFolderPath (Environment.SpecialFolder.MyPictures), "My Pictures"), _

New JumpListLink ( "https://blogs.msdn.com/coding4fun", "Visit Coding4Fun"), _

New JumpListLink ( "https://code.msdn.microsoft.com/WindowsAPICodePack", "Windows API Code Pack"))

`New JumpListItem (@ "c: Test1.c4f")




jl.AddCustomCategories (catActions)

Visual C #

// Додаю свої посилання (іменники)

JumpListCustomCategory catActions = new JumpListCustomCategory ( "Destinations");

catActions.AddJumpListItems (

new JumpListLink (Environment.GetFolderPath (Environment.SpecialFolder.MyPictures), "My Pictures"),

new JumpListLink ( "https://blogs.msdn.com/coding4fun", "Visit Coding4Fun"),

new JumpListLink ( "https://code.msdn.microsoft.com/WindowsAPICodePack", "Windows API Code Pack")

// new JumpListItem (@ "c: Test1.c4f")

);

jl.AddCustomCategories (catActions);

Ви можете додати одну або більше завдань як посилання на виконувані файли, використовуючи метод AddUserTasks об`єкта JumpList. При цьому або створюйте кілька об`єктів і додавайте їх як змінний список аргументів, або додайте їх по одному одноразово, як це зробив я.

Visual Basic

`Додаємо завдання наших користувачів (дієслова)

jl.AddUserTasks (New JumpListLink (Path.Combine (systemFolder, "notepad.exe"), "Open Notepad") _

With {.IconReference = New IconReference (Path.Combine (systemFolder, "notepad.exe"), 0)})

Visual C #

`Додаємо завдання наших користувачів (дієслова)

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.

Visual Basic

jl.AddUserTasks (New JumpListSeparator ())

Visual C #

jl.AddUserTasks (new JumpListSeparator ());

Останні посилання в списку переходів вказують на наш же виконуваний файл. Це найбільш поширений варіант використання списків переходу. Простий список з останніми або часто використовуваними файлами, звичайно ж, - штука хороша, але можливість ініціювати якісь операції в самій програмі, навіть якщо вона не запущена, по-справжньому зручна. Це майже що меню параметрів командного рядка запуску програми!

Команди в списку, що запускають операції в самому додатку, вимагають виклику цього додатка з різними аргументами. Пам`ятайте, що це не справжнє меню - ви не отримаєте подія Click. Замість цього потрібно обробляти аргумент, переданий вашій програмі, навіть якщо вона вже виконується.

Перший аргумент в командному рядку завжди є повним ім`ям виконуваного файлу (разом з шляхом). Властивість Arguments дозволяє вказувати аргументи командного рядка, безпосередньо не видимі користувачам. У цьому прикладі я визначив три аргументи-заглушки. Якщо один з них передається, додаток змінює фон мітки і повідомляє, який аргумент був переданий.

Visual Basic

jl.AddUserTasks (New JumpListLink (Assembly.GetEntryAssembly (). Location, "Action 1 (Green)") _

With {.Arguments = "-1", .IconReference = New IconReference (Assembly.GetEntryAssembly (). Location, 0)})

Visual C #

jl.AddUserTasks (new JumpListLink (Assembly.GetEntryAssembly (). Location, "Action 1 (Green)")

{

IconReference = new IconReference (Assembly.GetEntryAssembly (). Location, 0),

Arguments = "-1"

});

 Списки переходів Windows 7


Поділися в соц. мережах:

По темі: