Александр Климов - Программирование КПК и смартфонов на .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 - читать книгу онлайн бесплатно, автор Александр Климов
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

[DllImport("coredll.dll")]

private static extern bool ShowWindow(IntPtr hwnd, int nCmdShow);

///



/// Прячем панель задач, чтобы пользователь не мог

/// нажать кнопку Start

///

public static void HideTaskbar() {

IntPtr h = FindWindow("HHTaskBar", "");

ShowWindow(h, SW_HIDE);

}

///



/// Показывает панель задач

///

public static void ShowTaskBar() {

IntPtr h = FindWindow("HHTaskBar", "");

ShowWindow(h, SW_SHOW);

}

private void butHideTaskbar_Click(object sender, EventArgs e) {

HideTaskbar();

}

private void butShowTaskbar_Click(object sender, EventArgs e) {

ShowTaskBar();

}

На самом деле с помощью функций FindWindowи ShowWindowможно показывать и скрывать не только панель задач, но и окна других приложений.

Запуск других приложений

Иногда требуется запустить из своей программы другое приложение. В этом случае можно призвать на помощь функцию API CreateProcess. В листинге 13.8 приведен код примера, который может запустить калькулятор, календарь и даже послать файл через инфракрасное соединение мобильному телефону. Для запуска всех этих функций на форме надо разместить всего три кнопки.

Листинг 13.8

public class ProcessInfo {

public IntPtr hProcess;

public IntPtr hThread;

public Int32 ProcessId;

public Int32 ThreadId;

}

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

private extern static int CreateProcess(

String imageName, String cmdLine, IntPtr lpProcessAttributes,

IntPtr lpThreadAttributes, Int32 boolInheritHandles,

Int32 dwCreationFlags, IntPtr lpEnvironment, IntPtr lpszCurrentDir,

byte[] si, ProcessInfo pi);

private void butCalc_Click(object sender, EventArgs e) {

//Запускаем калькулятор

ProcessInfo pi = new ProcessInfo();

CreateProcess(

"calc.exe", "", IntPtr.Zero, IntPtr.Zero, 0, 0, IntPtr.Zero, IntPtr.Zero,

new Byte[128], pi);

}

private void butCalendar_Click(object sender, EventArgs e) {

//Запускаем календарь

ProcessInfo pi = new ProcessInfo();

CreateProcess(

"calendar.exe", "", IntPtr.Zero, IntPtr.Zero, 0, 0, IntPtr.Zero,

IntPtr.Zero, new Byte[128], pi);

}

private void butInfra_Click(object sender, EventArgs e) {

//Посылаем файл через инфракрасное соединение

ProcessInfo pi = new ProcessInfo();

CreateProcess(

"Beam.exe", "\\windows\\Alarm1.wav", IntPtr.Zero, IntPtr.Zero, 0, 0,

IntPtr.Zero, IntPtr.Zero, new Byte[128], pi);

}

Приведенный код достаточно прост. Нужно вызвать функцию CreateProcessс именем исполняемого файла в первом параметре. В методе для отправки файла также используется второй параметр, в котором указываем имя отсылаемого файла.

Названия специальных файлов

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

Проблема заключается в том, что в локализованных версиях Windows эти папки зачастую имеют разные названия. Так, в американской версии Windows упомянутая папка имеет название Favorites . И если ваша программа ссылается на файл, находящийся в специальной папке, то необходимо точно узнать, как называется эта папка на конкретном устройстве. Код проверки приведен в листинге 13.9.

Листинг 13.9

// Константы

///



/// Папка, содержащая файлы и папки, которые появляются на

/// экране Сегодня

///

const int CSIDL_DESKTOPDIRECTORY = 0x0010;

///



/// Папка Избранное

///

const int CSIDL_FAVORITES = 0x0006;

///



/// Папка \Мои документы

///

const int CSIDL_PERSONAL = 0x0005;

///



/// Папка Программы в папке Главное меню

/// (\Windows\Start Menu\Programs)

///

const int CSIDL_PROGRAMS = 0x0002;

///



/// Папка Recent (содержит последние из открывавшихся

/// документов)

///

const int CSIDL_RECENT = 0x0008;

///



/// Папка Главное меню

/// (\Windows\Start Menu)

///

const int CSIDL_STARTMENU = 0x000b;

///



/// Папка Автозагрузка для программ,

/// которые автоматически загружаются при запуске Windows

/// \Windows\StartUp

///

const int CSIDL_STARTUP = 0x0007;

///



/// Папка, в которой хранятся шаблоны документов

///

const int CSIDL_TEMPLATES = 0x0015;

///



/// Функция получения имен специальных папок

///

[DllImport("Coredll.dll")]

static extern int SHGetSpecialFolderPath

(IntPtr hwndOwner, StringBuilder lpszPath, int nFolder, int fCreate);

const int MAX_PATH = 260;

private void Form1_Load(object sender, EventArgs e) {

// Папка Избранное

StringBuilder strFavorites = new StringBuilder(MAX_PATH);

SHGetSpecialFolderPath(this.Handle, strFavorites, CSIDL_FAVORITES, 0);

MessageBox.Show("Избранное: " + strFavorites.ToString());

// Папка Программы

StringBuilder strPrograms = new StringBuilder(MAX_PATH);

SHGetSpecialFolderPath(this.Handle, strPrograms, CSIDL_PROGRAMS, 0);

MessageBox.Show("Программы: " + strPrograms.ToString());

// Мои документы

StringBuilder strMyDocs = new StringBuilder(MAX_PATH);

SHGetSpecialFolderPath(this.Handle, strMyDocs, CSIDL_PERSONAL, 0);

MessageBox.Show("Мои документы: " + strMyDocs.ToString());

}

Использование звуковых файлов

Мир современных компьютеров трудно представить без мультимедийных возможностей; однако проигрывание звуковых файлов не поддерживалось в библиотеке .NET Framework 1.0. Подобный подход Microsoft удивил многих программистов. В этом случае приходилось использовать неуправляемый код с вызовом функции PlaySound.

С выходом .NET Framework 2.0 ситуация изменилась в лучшую сторону. Но легкая поддержка звуковых файлов остается прерогативой настольных систем. В библиотеке .NET Compact Framework по-прежнему отсутствует поддержка проигрывания звуковых файлов. А ведь для разработки игры наличие звуковых эффектов является обязательным условием, иначе игра будет просто неинтересна!

Поэтому нужно устранить недоработку разработчиков из Microsoft. В новом примере будут использоваться два способа воспроизведения звуков. В первом случае программа будет извлекать звуковой фрагмент из ресурсов. Во втором случае программа будет проигрывать звук из обычного WAV-файла.

Итак, нужно создать новый проект с именем PlaySound_CS. К проекту надо добавить новый класс с именем Sound. Объявление функции PlaySound, необходимой для проигрывания звуков, нужно поместить в класс Sound, как показано в листинге 13.10.

Листинг 13.10

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)]

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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