Кирпичики. NET Compact Framework

Итак, изучение. NET Compact Framework подходит к концу. Мы с вами рассмотрели различные аспекты программирования для карманных компьютеров и смартфонов. Напоследок я хочу предложить вам не­сколько маленьких советов-кирпичиков, с помощью которых вы смо­жете построить свое новое приложение. Часть этих советов уже встре­чалась вам на страницах этой книги. Но, может быть, вы не обратили на них внимания или не помните, где искать нужный вам кусок кода. Поэтому я отобрал часть этих советов и поместил их в отдельную гла­ву. Эту главу можно рассматривать как справочный материал.

Узнать версию .NET Compact Framework

В папке Windows есть утилита CGACUTIL. EXE, которая выводит но­мер версии установленной. NET Compact Framework. Если нужно программно узнать номер версии, то следует воспользоваться ко­дом, приведенным в листинге 14.1.

Листинг 14.1

// Узнаем версию установленной .NET Compact Framework txtApoDir. Text = Environment. Version. ToStringO;

Узнать версию операционной системы

Для получения версии операционной системы нужно вызвать уже свойство OSVersion, как показано в листинге 14.2.

Листинг 14.2

// Узнаем версию операционной системы txtlnfo. Text = Environment. OSVersion. ToStringO;

Получаемые значения приведены в следующем списке.

□ 3.0 — соответствует Pocket PC 2000/2002.

□ 4.20 — соответствует Pocket PC 2003.


□ 4.21 — соответствует Pocket PC 2003 SE.

□ 5.01 — соответствует Windows Mobile 5.0.

Путь к запущенному приложению

Иногда требуется узнать путь к файлу запущенного приложения. Для этого можно воспользоваться кодом из листинга 14.3.

Листинг 14.3

using System.10; using System. Reflection;

txtAppDir. Text =

Path. GetDi rectoryName(Assemblу. GetExecuti ngAssemblу().GetModul e (>[0].

Ful1yQualj fі edName).ToStri ng();

В этом примере после выбора соответствующего пункта в тексто­вом поле будет отображен полный путь к файлу запущенного при­ложения.

Специальные папки

В главе, посвященной функциям Windows API, путь к специаль­ным папкам отыскивался с помощью функции SHGetSpeci а 1 Fol — » derPath. Сторонники управляемого кода могут воспользоваться ме­тодом GetFolderPath, который появился в. NET Compact Framework 2.0. С помощью перечисления Environment. Special Folder можно по­лучить пути к некоторым специальным папкам системы. Напри­мер, чтобы получить путь к папке Start Up, можно воспользоваться кодом, приведенным в листинге 14.4.

Листинг 14.4

txtlnfo. Text =

Envi ronment. GetFolderPath(Envi ronment. Speci alFolder. Startup) .To tringO;

-ЧІ*’ "*

Узнать имя устройства

Чтобы узнать имя устройства, на котором запущено приложение* • достаточно вызвать метод GetHostName, как показано в листинге 14.5.

Листинг 14.5

txtlnfo. Text = System. Net. Dns. GetHostNameO. ToStringO;

Узнать ориентацию экрана

Чтобы узнать, какой режим экрана установлен на данный момент, достаточно получить свойство Bounds, как показано в листинге 14.6.

Листинг 14.6

txtlnfo. Text = Screen. PrimaryScreen. Bounds. Width + +

Screen. Prі maryScreen. Bounds. Hei ght;

Зная ширину и высоту экрана, уже не составит труда понять, какой режим отображения используется в данный момент.

Открытие файлов по умолчанию

Стоит обратить особое внимание на класс Process. С помощью дан­ного класса очень удобно запускать любой файл, который будет открываться программой, сопоставленной с данным типом фай­ла. Предположим, что необходимо воспроизвести музыкальный файл MP3, но при этом неизвестно, какая именно программа у пользователя отвечает за воспроизведение этих музыкальных файлов. В этом случае можно просто указать имя файла, и систе­ма сама запустит соответствующую программу. Соответствующий код приведен в листинге 14.7.

Листинг 14.7

System. Diagnostics. Process. StartCWMy Music\myfile. mp3”);

ВНИМАНИЕ————————————————————————————

Класс System. Diagnostics. Process появился в. NET Compact Framework 2.0. Для версии. NET Compact Framework 1.0 нужно использовать функцию API ShellExecuteEx.

Создание и отправка письма

Существует очень легкий и быстрый способ создания и отправки письма с использованием технологии, применяемой на веб-страни­цах. С помощью ключевого слова та 11 to создается заготовка пись­


ма, в которой указываются автор сообщения, тема и текст письма. После этого запускается процесс, который в автоматическом режи­ме запускает нужную почтовую программу и отсылает письмо, как показано в листинге 14.8.

Листинг 14.8

private void butSendMaі1_С1ick(object sender. EventArgs e)

{

System. Di agnosti cs. Process. Start

("mai1to:alexander. klimoff@gmai1.com? subject=About Book". null);

}

Кнопки навигации

У карманных компьютеров есть кнопки навигации, позволяющие управлять объектами на экране. Это кнопки со стрелками и кнопка ввода.

Чтобы узнать, на какую кнопку нажал пользователь, нужно пере­определить событие OnKeyDown. Для создания тестового приложения нужно разместить на форме строку состояния, в которой будет ото­бражаться название нажатой кнопки. Соответствующий код при­веден в листинге 14.9.

Листинг 14.9

protected override void OnKeyDown(KeyEventArgs keyg)

{

switch (keyg. KeyData)

{

case Keys. Left: sbaKeys. Text = "Left"; break;

case Keys. Right: sbaKeys. Text = "Right": break:

case Keys. Down: sbaKeys. Text = "Down"; break:

case Keys. Up: sbaKeys. Text — "Up"; break;

case Keys. Return: sbaKeys. Text — "Return"; break:

default: break;

}

Послесловие

Что дальше?

Вот и подошла к концу книга о программировании для мобиль­ных устройств с помощью. NET Compact Framework. Надеюсь, я смог рассказать об основных особенностях программирования в этой среде, и вам будет легко продолжить изучение этой техно­логии. Жизнь не стоит на месте, и постоянно выпускаются новые релизы эмуляторов, обновлений SDK и новых утилит. Компания Microsoft уже работает над новой мобильной версией Windows, которая должна прийти на смену Windows Mobile 5.0, и обещает выпустить ее в конце 2006 года. Новая операционная система на­зывается Crossbow. По заявлениям разработчиков, в ней будут представлены расширенные средства синхронизации с програм­мами Office 2007 и Exchange 12.

Также в состав операционной системы войдет новая программа Office Communicator, обладающая широкими возможностями об­мена информацией через мгновенные сообщения, голосовую связь и видео. Также появилась информация, что после Crossbow будет выпущена еще одна новая платформа под кодовым названием Photon. Главная особенность этой системы заключается в том, что ее можно будет использовать как на смартфонах, так и на карман­ных компьютерах. На сегодняшний день, по оценкам экспертов, компания Microsoft удерживает примерно 16% рынка мобильных операционных систем. Лидером в этом сегменте является операци­онная система Symbian, на долю которой приходится 63%. Но есть все предпосылки, что в ближайшем будущем эти цифры могут из­мениться в сторону увеличения доли Windows Mobile.

Полезные ресурсы

Напоследок хотелось бы привести несколько полезных ссылок на различные ресурсы в Сети, которые могут оказаться полезными для разработчиков.

.NET Compact Framework 2.0 Redistributable

Если вы пишете программы с использованием. NET Compact Framework 2.0, то при распространении программы надо либо вклю чать в состав вашего установочного файла все необходимые биб­лиотеки, либо предложить пользователю самостоятельно уста­новить. NET Compact Framework 2.0. В этом случае достаточно бу­дет выкладывать на сайте только сам исполняемый файл програм­мы. Загрузить последнюю версию. NET Compact Framework 2.0 можно по адресу www. microsoft. com/downloads/details. aspx? familyid= *=9655156b-356b-4a2c-857c-e62f50ae9a55&displaylang-en.

Microsoft ActiveSync 4.1

Программа синхронизации ActiveSync используется для передачи файлов между настольным и карманным компьютерами. Последнюю версию программы можно скачать по адресу www. microsoft. com/ downloads/details. aspx? FamilyId^3926AlE0-CABD-4A45-8E5B — F938D9A69D8D&displaylang=ru.

Русская версия эмулятора для Windows Mobile 5.0 Smartphone

Помимо стандартного эмулятора для смартфона под управлением системы Windows Mobile 5.0 на английском языке, вы можете ска­чать и локализованную версию, которая располагается по адресу www. microsoft. com/downloads/details. aspx? familyid=52FED581-8F8D — -4C46-9966-4832098191B7&displaylang=ru.

Русская версия эмулятора для КПК под управлением Windows Mobile 5.0 Pocket PC

Также можно использовать русскую версию эмулятора для КПК под управлением операционной системы Windows Mobile 5.0, ко­торую можно найти по адресу www. microsoft. com/downloads/ details. aspx? FamilyID=eec33ae3-cl29-4c25-abaa-18e8e842178f&dis — playlang=en&Hash=S3HN6BD.

Сайт Роба Майлза

На страницах книги я использовал примеры разработчика Роба Майлза (Rob Miles). Он является автором многих статей, которые


Послесловие

ffit’W»:

32o

можно найти в документации MSDN. Также у него есть свой сайт www. robmiles. com, который стоит посетить.

Сайт Кристиана Форсберга

Кристиан Форсберг (Christian Forsberg), чьи примеры я использо­вал в этой книге, тоже ведет свой сайт www. businessanyplace. net, на котором можно найти много полезной информации.

OpenNETCF.org

Один из самых популярных сайтов, посвященных программиро­ванию при помощи. NET Compact Framework, расположился по адресу www. opennetcf. org. Особый интерес вызывают представлен­ные на сайте статьи и исходные коды приложений. Также на сай­те находятся очень интересные блоги опытных программистов, ко­торые делятся своими мыслями, разработками и примерами. Например, я частенько заглядываю на блог Алекса Яхнина по ад­ресу blog. opennetcf. org/ayakhnin, на котором не раз находил инте­ресные примеры. Часть этих примеров я также использовал в кни­ге с разрешения автора. Кстати, Алексу можно задать вопрос на русском языке!

Google

К сожалению, я не могу упомянуть все сайты, которые посвящены программированию с помощью. NET Compact Framework. Для по­иска новой информации можно воспользоваться услугами любой поисковой системы. Я рекомендую вам для этих целей использо­вать поисковую службу Google (www. google. com), которая осуще­ствляет поиск не только по сайтам, но и по группам новостей

Leave a reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Confirm that you are not a bot - select a man with raised hand: