Меню сайта

Категории раздела
Интернет [7]
Всё что связано с интернетом
Microsoft [5]
Все о компании Microsoft и их продуктов
Apple [13]
Всё о компании Apple и их продуктов
Cофт [3]
Программы и многое другое
Темы для windows [1]
В этой категории будут размещаться темы для windows
Linux [7]
Всё о linux
Обои [2]
Обои для рабочего стола
Железо [7]
Новости компьютерной техники
игры [1]
Всё об играх

Форма входа

Мини-чат

Наш опрос
Какую операционную систему вы предпочитаете?


Всего ответов: 265



   

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Главная » 2009 » Июнь » 11 » Библиотеки Windows 7 - управляемый код
15:01
Библиотеки Windows 7 - управляемый код
Подошло к концу продолжительное погружение в программные интерфейсы библиотек Windows 7 и их архитектуру. Осталось лишь поговорить об управляемых API для работы с библиотеками Windows 7. Напомню, что до этого мы успели обсудить предназначение библиотек Windows 7, обсудили то, что происходит за кулисами библиотек, о том, как научить приложение работать с библиотеками Windows 7, поговорили об использовании содержимого библиотек Windows 7, о синхронизации библиотек и вспомогательных функциях для библиотек Windows 7.

В данной статье мы сконцентрируем внимание на управляемых API для работы с библиотеками Windows 7. Windows API Code Pack для Microsoft .NET Framework Library (для краткости Windows API Code Pack) предусматривает .Net-интерфейс для встроенных Windows API, делая доступными 7 ключевых функций доступа в Windows 7, а также использование более продвинутых способов интеграции в оболочку, о которых мы говорили чуть раньше. Загрузить Windows Code Pack API можно отсюда.

Windows API Code Pack обладает очень удобным управляемым интерфейсом к оболочке Windows. ShellLibrary (как элемент Microsoft.WindowsAPICodePack.Shell dll, которую вам надо добавить в качестве ссылки на ваше .net-приложение, чтобы работать с Windows 7) - это единственный объект, представляющий библиотеки. Вышеприведенное изображение показывает классы ShellLibrary.

Теперь можно приступать к работе с библиотеками. Для начала нужно создать объект Library, используя один из четырех доступных конструкторов. Вы можете воспользоваться конструктором, который в качестве параметра использует Known Folder. Это упростит разработчикам обслуживание кода. Но имейте в виду, что большинство конструкторов получают параметр overwrite в булевых величинах. Удостоверьтесь в том, что вы не перезаписываете уже существующую папку "Documents" или другую библиотеку, поскольку при создании нового ShellLibrary-объекта библиотечный XML-файл сохраняется в папку библиотеки, описанную параметром Known Folder, о которой мы уже говорили. Следующая строка создает новый ShellLibrary- объект, тем самым создавая новую библиотеку:
Код:
ShellLibrary library = new ShellLibrary("new test lib1", true);
Если вам не нужно создавать новую библиотеку, вы можете загрузить существующую библиотеку для получения необходимого ShellLibrary-объекта. Имейте в виду, что все функции загрузки являются статическими и не требуют копии существующего ShellLibrary-объекта. Последним параметром любой загружаемой функции является isReadOnly в булевом формате, когда требуется прочитать содержание библиотеки, не изменяя его. Так, к примеру, приложению, которое осуществляет резервное копирование всех библиотек, не требуется вносить изменения в библиотеки. Следующий фрагмент кода - это все, что нужно для загрузки существующей библиотеки:
ShellLibrary library = ShellLibrary.Load("My Pictures", true);
И в заключение несколько слов об удалении библиотеки. В объекте ShellLibrary не предусмотрено механизма самоуничтожения, поэтому вы не сможете удалить библиотеку, используя ShellLibrary. Чтобы удалить библиотеку, необходимо удалить XML-файл описания библиотеки. Ниже приведен фрагмент кода:
public static void DeleteLibrary(string name)
{
string librariesPath = Path.Combine(
Environment.GetFolderPath(
Environment.SpecialFolder.ApplicationData),
ShellLibrary.LibrariesKnownFolder.RelativePath);

string libraryPath = Path.Combine(librariesPath, name);
string libraryFullPath = Path.ChangeExtension(libraryPath, "library-ms");

File.Delete(libraryFullPath);
}

Просмотров: 574 | Добавил: Blackcomb | Рейтинг: 0.0/0
Всего комментариев: 1
11.06.2009
Сообщение # 1 Написал: Леха Казанков (Blackcomb) [Материал]

Загрузить Windows Code Pack API

Архив записей

Друзья сайта
  • Всё о jabber
  • Наша команда в cs
  • Правильный IM
  • Хороший сайт о Windows
  • Зайди обязательно))