Windows Vista Bridge Sample Library - управляемые API для Windows Vista/Windows 7
В состав .NET Framework входят различные библиотеки, которые позволяют использовать многие системные функции Windows API в удобной обертке. Но несмотря на всесторонние связи .NET Framework, данная среда исполнения не предлагает управляемые API для всех функций Windows API. Например, у разработчиков управляемого кода нет никаких управляемых API для работы с UAC API, Restart Manager API или новым Windows Vista Search API. Это всего лишь несколько примеров собственных Windows API, для работы с которыми в .NET Framework нет каких-либо интерфейсов, но которые играют ключевую роль при развертывании некоторых приложений в Windows.
Windows Vista Bridge Sample Library (VBSL) является развитием одной из идей команды Microsoft SDK по созданию своеобразного моста между .NET Framework и Windows API. VBSL является библиотекой классов, которая облегчает разработчикам управляемого кода доступ к наиболее важным функциям Windows Vista без необходимости заботиться об уровне взаимодействия. Vista Bridge 1.4 предлагает разработчикам набор классов, библиотек и примеров, написанных на .NET, которые позволяют разработчику использовать такие функции Vista, как UAC, Power Management, Restart & Recovery, Restart Manager, Network, Aero Glass и многие другие. Необходимо отметить, что управляемые библиотеки Vista Bridge 1.4 отлично работают и с Windows 7 API и будут работать в будущих релизах по мере того, как команда SDK будет продолжать поддержку данного проекта.
Самую последнюю версию Vista Bridge Sample Library можно найти в MSDN Code Gallery, а также входит в состав Windows SDK.
Начало работы
После того, как вы скачали необходимые файлы, нужно произвести некоторые приготовления. Сама библиотека поставляется в виде исходных кодов. Запустите решение (vistabridge.sln) и в Solution Explorer выберите проект VistaBridgeLibrary и в его контекстом меню выберите команду Build. В результате ваших действих будет создан dll-файл VistaBridgeLibrary.dll. Теперь вы можете использовать эту библиотеку в своих программах. Создайте новый проект, например, VistaBridgeSampleLibraryDemo. Откройте диалоговое окно Add Reference (меню Project | Add Reference) и перейдите на вкладку Browse. Найдите созданную библиотеку и добавьте ее к проекту.
Теперь вы готовы использовать библиотеку в своей программе. Подключите ее при помощи ключевого слова using:
using Microsoft.SDK.Samples.VistaBridge.Library;
Диалоговые окна
В Windows Vista появились новые диалоговые окна для разных целей. Вероятно вам знаком следующий вид диалогового окна:
или такой:
Оба представленных выше диалоговых окна основаны на командных ссылках. С помощью командных ссылок пользователи выбирают ответ для основной инструкции, после чего переходят к следующему шагу в задании. Командные ссылки имеют простой и понятный вид, что позволяет размещать на них их описание. Кроме того, в командных ссылках могут быть использованы как стандартные, так и нестандартные значки, а также дополнительное описание.
Вот пример типичного набора командных ссылок:
Командные ссылки похожи на переключатели (radio buttons) в том смысле, что они используются для выбора из набора взаимно исключающих, но связанных между собой вариантов ответа. Как и переключатели, командные ссылки всегда представлены в наборе и никогда по одной. У командных ссылок упрощенный внешний вид, как и обычных гиперссылок – без рамки и других явных атрибутов нажатия. Командные ссылки также похожи на командные кнопки (command buttons) тем, что они также могут иметь «ссылку по умолчанию» и для них тоже может быть назначена «быстрая комбинация клавиш». Подобно кнопкам с фиксацией положения (commit buttons) командные ссылки при нажатии или закрывают диалоговые окна или переводят на следующую страницу пошагового мастера.
Используя Windows Vista Bridge Sample Library, вы можете создать собственные диалоговые окна, используя новый интерфейс Windows Vista. Давайте попробуем это сделать.
Новые диалоговые окна создаются при помощи объекта Microsoft.SDK.Samples.VistaBridge.Library.TaskDialog. Давайте создадим и настроим диалоговое окно и рассмотрим пример его использования.
Во-первых, создайте объект Task Dialog. После чего начните настраивать его атрибуты - заголовок, инструкции, основную область и основной значок для окна:
TaskDialog td = new TaskDialog();
td.StartupLocation = TaskDialogStartupLocation.CenterOwner;
td.Cancelable = true; // выводит кнопку закрытия окна
// настройка диалогового окна
// Заголовок окна
td.Caption = "Замечательное диалоговое окно \"Vista\"";
td.Instruction = "Здесь находится основной текст для пользователя";
td.Content = "Скачайте пример использования библиотеки Windows Vista Bridge Library";
// Можете выбрать значок (есть несколько вариантов)
td.MainIcon = TaskDialogStandardIcon.Information;
// настройки подвала окна
td.FooterText = "Текст в подвале диалогового окна";
// Значок для подвала
td.FooterIcon = TaskDialogStandardIcon.Shield;
// Выводим окно на экран
td.Show();
Теперь добавьте опциональный нижний колонтитул и значок:
td.FooterText = "Footer text goes here"; t
d.FooterIcon = TaskDialogStandardIcon.Shield;
Как видите, у нас получилось простейшее диалоговое окно в стиле Windows Vista. Идем дальше.
Но самое интересное начнется, когда вы начнете разбираться с TaskDialog.Controls - коллекцией элементов управления TaskDialog -DialogControlCollection
td.Controls.Add(new TaskDialogCommandLink("new tdcl", "main text here","instruction"));
В дополнение к добавлению командных ссылок, Task Dialog также может выводить набор событий, которые позволят вам манипулировать и взаимодействовать с пользователем во время его работы с диалоговым окном. Объекты Task Dialog используют событие Tick для работы с индикатором выполнения задачи, Open и Closing, а также HelpInvoked и HyperLinkClick для управления пользовательскими запросами о помощи и информации.
//events that you can catch
td.Tick += new EventHandler(OnMyTick);
td.Opened += new EventHandler(OnOpenInvoked);
td.HelpInvoked += new EventHandler(OnHelpInvoked);
Также вы можете добавить компоненты Progress Bar, CheckBox и Radio Button. По сути, Windows Vista Task Dialogs API является мини-версией среды исполнения Dialog, который позволяет вам сохранить много времени при работе с мастерами и диалоговыми окнами.
Код вышеприведенного примера:
td.StartupLocation = TaskDialogStartupLocation.CenterOwner;
td.Cancelable = true; // выводит кнопку закрытия окна
// настройка диалогового окна
// Заголовок окна
td.Caption = "Замечательное диалоговое окно \"Vista\"";
td.Instruction = "Здесь находится основной текст для пользователя";
td.Content = "Скачайте пример использования библиотеки Windows Vista Bridge Library";
// Можете выбрать значок (есть несколько вариантов)
td.MainIcon = TaskDialogStandardIcon.Information;
// настройки подвала окна
td.FooterText = "Текст в подвале диалогового окна";
// Значок для подвала
td.FooterIcon = TaskDialogStandardIcon.Shield;
// Command Links
td.Controls.Add(new TaskDialogCommandLink("new tdcl", "Текст для первой командной ссылки", "Ваши инструкции для пользователя"));
td.Controls.Add(new TaskDialogCommandLink ("Another new tdcl", "Другой текст для второй командной ссылки", "Другие инструкции"));
// Expanding
td.ExpansionMode = TaskDialogExpandedInformationLocation.ExpandContent;
td.ExpandedControlText = "Текст при развернутом виде";
td.ExpandedText = "Этот текст будет виден, когда пользователь раскроет окно. Можно добавить ссылку: <A HREF=\"Http://developer.alexanderklimov.ru\">Сайт для программистов</A>";
td.CollapsedControlText = "Текст при свернутом виде";
td.HyperlinksEnabled = true;
//Prograss Bar
TaskDialogProgressBar tdpb = new TaskDialogProgressBar();
tdpb.Name = "myPrograssBar1";
tdpb.Minimum = 0;
tdpb.Maximum = 100;
td.ProgressBar = tdpb;
// можно добавить Check Box
td.CheckBoxChecked = true;
td.CheckBoxText = "Добавим галочку. Можно отслеживать ее состояние";
// Доступные события
// щелчок по ссылке
td.HyperlinkClick += new EventHandler<TaskDialogHyperlinkClickedEventArgs>(td_HyperlinkClick);
// такты для индикатора прогресса
td.Tick += new EventHandler<TaskDialogTickEventArgs>(td_Tick);
//td.Opened += new EventHandler(OnOpenInvoked);
//td.HelpInvoked += new EventHandler(OnHelpInvoked);
//td.Closing += new EventHandler<TaskDialogClosingEventArgs>(OnDialogClosing);
td.Show();
Скачать
Скачать Windows Vista Bridge Sample Library 1.4 (исходный код)
Дополнительные материалы
Главная страница Windows Vista Bridge Sample Library
Windows Vista Bridge Sample Library = A Managed API for Windows - статья на английском
Windows Vista Bridge Sample Library – управляемые API для Windows 7 - перевод статьи на русском
