Чтение онлайн

на главную - закладки

Жанры

Программирование КПК и смартфонов на .NET Compact Framework

Климов Александр Петрович

Шрифт:

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

Листинг 13.23

/// <summary>

/// Включает виброзвонок

/// </summary>

/// <returns>S_OK сообщает об успешном вызове функции. В случае

/// ошибки возвращается E_FAIL

///</returns>

[DllImport("aygshell")]

private static extern int Vibrate(int cvn, IntPtr rgvn, uint fRepeat,

 uint dwTimeout);

/// <summary>

///
Останавливает виброзвонок

/// </summary>

/// <returns>S_OK сообщает об остановке виброзвонка. В случае

/// ошибки возвращается EFAIL

/// </returns>

[DllImport("aygshell")]

private static extern int VibrateStop;

/// <summary>

/// Получает сведения о возможности использования виброзвонка

/// </summary>

/// <param name="caps">Перечисление VIBRATEDEVICECAPS,

/// определяющее возможности воспроизведения виброзвонка

/// устройством.

///</param>

[DllImport("aygshell")]

private static extern int VibrateGetDeviceCaps(VibrationCapabilities caps);

/// <summary>

/// Используется функцией VibrateGetDeviceCaps для определения

/// возможности воспроизведения виброзвонка.

/// </summary>

public enum VibrationCapabilities : int {

 VDC_Amplitude,

 VDC_Frequency,

}

private void mnuStopVibrate_Click(object sender, EventArgs e) {

 StopVibrate;

}

private void mnuVibrate_Click(object sender, EventArgs e) {

 StartVibrate;

}

/// <summary>

/// Включаем виброзвонок

/// </summary>

/// <returns>В успешном случае возвращается TRUE, в случае

/// ошибки - FALSE.</returns>

public static bool StartVibrate {

 int result = Vibrate(0, IntPtr.Zero, 0xffffffff, 0xffffffff);

 if (result != 0) {

return false;

 }

 return true;

}

/// <summary>

///
Останавливаем виброзвонок

/// </summary>

/// <returns>В успешном случае возвращается TRUE, в случае

/// ошибки - FALSE.</returns>

public static bool StopVibrate {

 int result = VibrateStop;

 if (result != 0) {

return false;

 }

 return true;

}

ВНИМАНИЕ

Приведенный код будет работать только на смартфонах. На форумах можно найти сообщения, что на устройствах под управлением PocketPC Phone Edition этот пример не работает, даже если указанное устройство поддерживает виброзвонок.

Глава 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.

Поделиться:
Популярные книги

Кодекс Крови. Книга III

Борзых М.
3. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга III

Отчий дом. Семейная хроника

Чириков Евгений Николаевич
Проза:
классическая проза
5.00
рейтинг книги
Отчий дом. Семейная хроника

Скандальная свадьба

Данич Дина
1. Такие разные свадьбы
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Скандальная свадьба

Путанабус. Трилогия

Старицкий Дмитрий
Фантастика:
боевая фантастика
6.93
рейтинг книги
Путанабус. Трилогия

Идеальный мир для Лекаря 25

Сапфир Олег
25. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 25

Кодекс Крови. Книга ХVI

Борзых М.
16. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Крови. Книга ХVI

Проданная невеста

Wolf Lita
Любовные романы:
любовно-фантастические романы
5.80
рейтинг книги
Проданная невеста

Потомок бога

Решетов Евгений Валерьевич
1. Локки
Фантастика:
попаданцы
альтернативная история
аниме
сказочная фантастика
5.00
рейтинг книги
Потомок бога

С Д. Том 16

Клеванский Кирилл Сергеевич
16. Сердце дракона
Фантастика:
боевая фантастика
6.94
рейтинг книги
С Д. Том 16

Переиграть войну! Пенталогия

Рыбаков Артем Олегович
Переиграть войну!
Фантастика:
героическая фантастика
альтернативная история
8.25
рейтинг книги
Переиграть войну! Пенталогия

От Советского Информбюро - 1941-1945 (Сборник)

Неизвестен 3 Автор
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
От Советского Информбюро - 1941-1945 (Сборник)

Санек 3

Седой Василий
3. Санек
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Санек 3

Прометей: повелитель стали

Рави Ивар
3. Прометей
Фантастика:
фэнтези
7.05
рейтинг книги
Прометей: повелитель стали

Отмороженный 14.0

Гарцевич Евгений Александрович
14. Отмороженный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Отмороженный 14.0