Александр Климов - Программирование КПК и смартфонов на .NET Compact Framework

Тут можно читать онлайн Александр Климов - Программирование КПК и смартфонов на .NET Compact Framework - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Питер, год 2007. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Программирование КПК и смартфонов на .NET Compact Framework
  • Автор:
  • Жанр:
  • Издательство:
    Питер
  • Год:
    2007
  • Город:
    Санкт-Петербург
  • ISBN:
    978-5-91180-270-7
  • Рейтинг:
    4.88/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Александр Климов - Программирование КПК и смартфонов на .NET Compact Framework краткое содержание

Программирование КПК и смартфонов на .NET Compact Framework - описание и краткое содержание, автор Александр Климов, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Мобильные устройства все активнее вторгаются в нашу жизнь. Карманные компьютеры и смартфоны давно утратили статус дорогих игрушек и перекочевали в разряд необходимых устройств. Значит, для них необходимо создавать программное обеспечение. Так почему вы должны оставаться в стороне?

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

Книга предназначена для начинающих программистов.

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

Программирование КПК и смартфонов на .NET Compact Framework - читать книгу онлайн бесплатно, автор Александр Климов
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

private extern static int PlaySoundBytes(byte[] szSound, IntPtr hMod,

int flags);

Данная функция использует для параметра flagsнесколько предопределенных констант. Более подробную информацию о назначении флагов этой функции можно найти в документации.

После этого создаются два конструктора с разными параметрами, которые будут использоваться для разных методов воспроизведения звука, и метод Play. Теперь нужно перейти к основной форме и разместить на ней две кнопки. Первая кнопка, butResource, будет проигрывать звуковой фрагмент, который хранится в ресурсах приложения. Кнопка butFilезапустит метод, который проигрывает аудиофайл.

Для того чтобы пример работал, понадобятся два звуковых файлов. В состав Windows XP входит несколько звуковых файлов. Для данного примера использовался файл chimes.wav . Его нужно добавить в проект. Чтобы включить файл chimes.wav в проект как ресурс, надо в свойствах файла выбрать пункт Build Action и установить значение Embedded Resource .

В качестве внешнего аудиофайла будет использоваться файл alarm3.wav , входящий в состав Windows Mobile. Этот файл находится в папке Windows . При желании можно использовать свой файл, но при этом надо в коде указать путь к нему. Теперь достаточно прописать код для обработки события Clickсозданных кнопок, как показано в листинге 13.11, — и приложение готово.

Листинг 13.11

using System;

using System.Collections.Generic;

using System.Text;

using System.IO;

using System.Runtime.InteropServices;

namespace PlaySound_CS {

public class Sound {

private byte[] m_soundBytes;

private string m_fileName;

private enum Flags {

SND_SYNC = 0x0000,

SND_ASYNC = 0x0001,

SND_NODEFAULT = 0x0002,

SND_MEMORY = 0x0004,

SND_LOOP = 0x0008,

SND_NOSTOP = 0x0010,

SND_NOWAIT = 0x00002000,

SND_ALIAS = 0x00010000,

SND_ALIAS_ID = 0x00110000,

SND_FILENAME = 0x00020000,

SND_RESOURCE = 0x00040004

}

[DllImport("CoreDll.DLL", EntryPoint = "PlaySound", SetLastError = true)]

private extern static int PlaySound(string szSound, IntPtr hMod, int flags);

[DllImport("CoreDll.DLL", EntryPoint = "PlaySound", SetLastError = true)]

private extern static int PlaySoundBytes(byte[] szSound, IntPtr hMod,

int flags);

///



/// Конструктор объекта Sound, который проигрывает звук из

/// указанного файла

///

public Sound(string fileName) {

m_fileName = fileName;

}

///



/// Конструктор объекта Sound, который проигрывает звук из

/// ресурсов

///

public Sound(Stream stream) {

// читаем данные из потока

m_soundBytes = new byte[stream.Length];

stream.Read(m_soundBytes, 0, (int)stream.Length);

}

///



/// Воспроизводим звук

///

public void Play() {

// Если из файла, то вызываем PlaySound.

// если из ресурсов, то PlaySoundBytes.

if (m_fileName != null)

PlaySound(m_fileName, IntPtr.Zero,

(int)(Flags.SND_ASYNC | Flags.SND_FILENAME));

else

PlaySoundBytes(m_soundBytes, IntPtr.Zero,

(int)(Flags.SND_ASYNC | Flags.SND_MEMORY));

}

}

}

Теперь нужно перейти к самой форме. Код для нее приведен в листинге 13.12.

Листинг 13.12

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Reflection;

namespace PlaySound_CS {

public partial class Form1 : Form {

public Form1() {

InitializeComponent();

InitializeComponent();

#if DEBUG

MinimizeBox = false;

#else

MinimizeBox = true;

#endif

}

private void butResource_Click(object sender, EventArgs e) {

Sound sound =

new Sound(Assembly.GetExecutingAssembly().GetManifestResourceStream(

"PlaySound_CS.chimes.wav"));

sound.Play();

}

private void butFile_Click(object sender, EventArgs e) {

Sound sound = new Sound("Windows\\alarm3.wav");

sound.Play();

}

}

}

Системные звуки

Также разработчик может использовать функцию MessageBeep, позволяющую проигрывать системные звуки. Код, использующий эту функцию, приведен в листинге 13.13.

Листинг 13.13

[DllImport("coredll.dll")]

extern static void MessageBeep(uint BeepType);

private void butBeep_Click(object sender, EventArgs e) {

MessageBeep(0);

}

Системное время

Чтобы получить или установить системное время на устройстве, нужно использовать функции GetSystemTimeи SetSystemTime. Следует учитывать, что функция GetSystemTimeвозвращает время по Гринвичу, а не местное время. Код, иллюстрирующий применение этих функций, приведен в листинге 13.14.

Листинг 13.14

using System.Runtime.InteropServices;

[DllImport("coredll.dll")]

private extern static void GetSystemTime(ref SYSTEMTIME lpSystemTime);

[DllImport("coredll.dll")]

private extern static uint SetSystemTime(ref SYSTEMTIME lpSystemTime);

private struct SYSTEMTIME {

public ushort wYear;

public ushort wMonth;

public ushort wDayOfWeek;

public ushort wDay;

public ushort wHour;

public ushort wMinute;

public ushort wSecond;

public ushort wMilliseconds;

}

private void GetTime() {

// Получим системное время

SYSTEMTIME st = new SYSTEMTIME();

GetSystemTime(ref st);

DateTime dt = DateTime.UtcNow.ToLocalTime();

// Выводим сообщение

MessageBox.Show("Текущее время: " + st.wHour.ToString() + ":" +

st.wMinute.ToString());

}

private void SetTime() {

// Сначала получим системное время

SYSTEMTIME st = new SYSTEMTIME();

GetSystemTime(ref st);

// А теперь прибавим один час

st.wHour = (ushort)(st.wHour + 1 % 24);

SetSystemTime(ref st);

MessageBox.Show("Новое время: " + st.wHour.ToString() + ":" +

st.wMinute.ToString());

}

private void butGetTime_Click(object sender, EventArgs e) {

GetTime();

}

private void butSetTime_Click(object sender, EventArgs e) {

SetTime();

}

Создание ярлыка

В некоторых случаях программисту необходимо создать ярлык к какой-либо программе. В этом случае можно воспользоваться специальной функцией SHCreateShortcut, применение которой демонстрируется в листинге 13.15.

Листинг 13.15

///



/// Функция для создания ярлыка

///

/// Строка, содержащая

/// путь и имя создаваемого ярлыка.

///

/// Строка, содержащая

/// путь и аргументы для ярлыка.

/// Размер строки ограничен 256 символами.

///

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

/// в случае ошибки возвращается FALSE

///

[DllImport("coredll.dll", EntryPoint = "SHCreateShortcut")]

private static extern bool SHCreateShortcut(string szShortcut,

string szTarget);

private void butCreateShortcut_Click(object sender, EventArgs e) {

// Создадим ярлык к калькулятору

bool success = SHCreateShortcut("\\My Documents\\Shortcut.lnk",

"\\Windows\\calс.exe\"");

}

В этом примере создается ярлык Shortcut.lnk для стандартного калькулятора, чей исполняемый файл носит имя windows\calc.exe .

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Александр Климов читать все книги автора по порядку

Александр Климов - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Программирование КПК и смартфонов на .NET Compact Framework, автор: Александр Климов. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x