52628.fb2 Программирование КПК и смартфонов на .NET Compact Framework - читать онлайн бесплатно полную версию книги . Страница 15

Программирование КПК и смартфонов на .NET Compact Framework - читать онлайн бесплатно полную версию книги . Страница 15

Глава 14Кирпичики .NET Compact Framework

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

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

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

Листинг 14.1

// Узнаем версию установленной .NET Compact Framework

txtAppDir.Text = Environment.Version.ToString();

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

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

Листинг 14.2

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

txtInfo.Text = Environment.OSVersion.ToString();

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

□ 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.IO;

using System.Reflection;

txtAppDir.Text =

 Path.GetDirectoryName(Assembly.GetExecutingAssemblу().GetModule()[0].

  FullyQuelifiedName).ToString();

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

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

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

Листинг 14.4

txtInfo.Text =

 Environment.GetFolderPath(Environment.SpecialFolder.Startup).ToString();

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

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

Листинг 14.5

txtInfo.Text = System.Net.Dns.GetHostName().ToString();

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

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

Листинг 14.6

txtInfo.Text =

 Screen.PrimaryScreen.Bounds.Width + ":" + Screen.PrimaryScreen.Bounds.Height;

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

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

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

Листинг 14.7

System.Diagnostics.Process.Start("\\My Music\\myfile.mp3");

ВНИМАНИЕ

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

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

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

Листинг 14.8

private void butSendMail_Сlick(object sender, EventArgs e) {

 System.Diagnostics.Process.Start

  ("mailto:alexander.klimoff@gmail.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;

 }

}