Набор Windows 7 API для управляемого кода
Как уже упоминалось ранее при обсуждении
В статье о библиотеках
Windows API Code Pack (Code Pack) намного мощнее в смысле функциональных возможностей и качества, чем его предшественник Windows Vista Bridge. Code Pack содержит широкий спектр API, включая исчерпывающий набор объектов Windows Shell, Windows Taskbar, библиотеки и набор расширенных лингвистических служб Windows 7. Вот лишь краткий перечень API из Windows API Code Pack:
- Поддержка объектов пространства имен Windows Shell, включая:
- Библиотеки Windows 7
- Известные папки (от англ. Known Folders)
- Контейнеры, не относящиеся к файловой системе
- Диалоги задач для Vista и Windows 7
- Поддержка элементов управления Windows 7 Explorer Browser
- Поддержка подсистемы свойств Shell
- Windows 7 Taskbar
- Поддержка общих файловых диалогов в Vista и Windows 7
- Поддержка Direct3D 11.0 и DXGI 1.0/1.1 API
- API платформы сенсоров
- Расширенные лингвистические службы Windows 7
После того, как вы
На сегодняшний день доступно 13 примеров, а в будущих релизах их станет еще больше. Но сегодня мы обсудим лишь четыре из них.
WPF Explorer Browser
Прежде, чем вдаваться в детали этого примера, давайте поговорим о Windows Shell. Windows Shell - это основной фронт взаимодействия пользователя с Windows. Многие пользователи считают, что Windows Explorer это и есть "Windows", однако, это всего лишь часть всей оболочки Windows Shell. Оболочка включает и другие элементы пользовательского интерфейса, такие как панель задач, меню Start, окна Windows Explorer, корзину и даже результаты поиска. Самые обычные и известные объекты оболочки - файлы и папки. Однако, есть также и другие виртуальные объекты, такие как корзина, принтеры, библиотеки и т.д. Объекты оболочки организованы в иерархической системе пространства имен, которая охватывает файловую систему.
Правильное понимание устройства пространства имен оболочки и получения доступа к верхнему уровню системы Shell - рабочему столу - вы можете понять всю структуру компьютера, включая файлы и папки, принтеры, шрифты, программные файлы и записанные телепередачи. Используя пространство имен, разработчики могут обращаться ко всем файлам и папкам и всем известным папкам, которые были упомянуты в статье
До последнего времени все эти действия были недоступны .Net-разработчиков. Однако, новый Code Pack предлагает элемент управления Explorer Browser, а также набор предопределенных объектов, свойства и API, необходимых для работы в пространстве имен. В разделе, относящейся к оболочке (Shell project) вы найдете элементы управления Explorer Browser для WPF и WinForms, равно как и все функциональные возможности, необходимые для операций с известными папками и такими объектами, как ShellObject, ShellLink, ShellFolder, ShellItem, ShellCollection, ShellThumbnail и т.д. Реализации панели задач и библиотек также используют многие из этих объектов оболочки. Как показано на следующем изображении, в примере Explorer Browser акцентируется внимание на элементе управления Explorer Browser, который помогает визуализировать пространство имен.
Аналогичным образом пример Shell Hierarchy Tree демонстрирует возможность перемещения по содержимому компьютера с помощью пространства имен:
Сенсоры
Code Pack также включает API для доступа к сенсорам через платформу Sensor and Location в Windows 7. Проект Sensor содержит все необходимые определения для нормальной работы с сенсорами, включая SensorManager для выбора и получения сенсора и класс сенсора для работы, и конечно SensorReport, который предоставит доступ к данным сенсора. Пример Sensor включает два примера, иллюстрирующие работу двух сенсоров: освещения и движения. Можно воспользоваться Virtual Light Sensor из SDK к версии-кандидату Windows 7, чтобы смоделировать различные условия освещения, а приложение Ambient Light Level - для отображения суммарного количества света, определенного сенсором.
Расширенные лингвистические службы
Расширенные лингвистические службы (далее ELS) - это еще одна очень интересная технология в Windows 7. ELS - новая функция, которая позволяет разработчикам использовать этот же набор API для увеличения разнообразия расширенных лингвистических функций. С помощью ELS API разработчики могут использовать информацию, полученную при автоматическом определении языка любого участка текста Unicode, чтобы сделать работу пользователей по всему миру более удобной. Платформа ELS - это связь между вашим приложением и сервисами ELS. Она обеспечивает простое использование некоторых видов лингвистических функциональных возможностей с помощью API, которые позволяют приложению обращаться и использовать определенные службы. Для получения дополнительной информации о API обращайтесь к статье
Класс MappingAvailableServices позволяет сделать запрос на определение языка, на котором написана строка. И вы можете либо проверить язык, на котором написана строка, либо узнать, на каком языке написана эта строка. Это может стать весь мощным инструментом в руках разработчиков многоязычных приложений.
К тому же она проста в использовании. Например, следующая строка кода определяет языки, используемые в строке:
scriptDetection.RecognizeText("This is English. АБВГД.", null))
e]
Результат будет выглядеть примерно так:
Recognized 2 script ranges
Range from 0 to 16, script Latn
Range from 17 to 22, script Cyrl
Панель задач и библиотеки
Code Pack содержит необходимые API для работы с панелью задач и библиотеками в Windows 7. Для панели задач вы можете:
- Создавать и управлять всплывающими списками (от англ. JumpLists), включая разделе "Задачи" и "Элементы"
- Отображать динамические многослойные иконки и панели миниатюр
- Использовать прогресс-бар
На этом уровне разработке вы не можете управлять предварительным просмотром миниатюр и функцией, известной под названием AeroPeek. Для реализации этих функциональных возможностей потребуется
Благодаря примеру с панелью задач вы научитесь полностью контролировать всплывающие списки, как показано на следующем изображении:
Code Pack также предлагает полную поддержку библиотек Windows 7, о которых более подробно мы поговорим в следующий раз.
Стоит отметить, что эта библиотека в настоящее время находится в разработке. Текущий номер версии - v0.85. Финальная версия этой библиотеки будет доступна к моменту релиза финальной версии Windows 7. Будем очень признательны, если вы поможете нам усовершенствовать библиотеку,
Источник:
Перевод: alexkiev
Комментарии
Ну МС то молодцы, такую фишку придумал с супербаром и ждамплистами, но вот разработчики программного обеспечения так и не удосужились использовать этот функционал, хотя уже почти пол года Windows 7 доступна для всех. Видать они не понимают всех возможностей новой панели задач и библиотек...
Надеюсь с помощью этой штуковины мне удастся сделать на WinForms нормальные вистовские диалоги и мастера. Замучался уже по мсдн'ам ползать...иногда так подумаешь..ну вышел .нет, вроде решили все унифицировать, чтобы разработчикам жилось легче. А на деле получается тут недоработали, про этих забыли...Главно сами позиционируют C# как основной язык, а первым делом подгоняют все под неуправляемый код. Я недавно только начал осваивать студию и шарп и голова уже пухнет от обилия сходных технологий, которые в студии есть одновременно.
По теме
- Федеративный поиск в Windows 7
- Программируем панель задач Windows 7: панель миниатюр
- Использование сенсоров в приложении: реализация в managed-коде (ч.1)
- Использование сенсоров в приложении: реализация в native-коде (ч.1)
- Я тебя чувствую: использование платформы Sensor в Windows 7
- Доступны записи с Windows 7 PDC Boot Camp
- Fishbowl для Facebook с использованием новой панели задач Windows 7
- Программируем для Windows 7 в Visual Studio 2010
- Новая версия Windows API Code Pack
- Программирование служб Windows 7 с триггерами (ч.2)