Карманное программирование-2
Продолжение. Начало см. в МК №52(431) за 2006 г.. В предыдущей статье мы бегло познакомились с основными принципами программирования КПК на ОС Windows Mobile. Теперь пора приступить к практике!
Настройка необходимого ПО и первая программа
Прежде чем начать, нам нужно убедиться в наличии всех необходимых программ и компонентов. Как я уже говорил, программирование для карманных компьютеров не поддерживается в Visual Basic .NET 2003 Standard и серии Visual Studio .NET 2005 Express. При инсталляции других версий Visual Studio .NET обратите внимание, чтобы были установлены средства разработки для карманных компьютеров Smart Device Extensions (SDE) и .NET Compact Framework SDK. Свежие SDK можно найти на девелоперских сайтах Microsoft.
Наши первые простенькие программы будем делать на Visual Basic .NET. Этот язык наиболее прост и понятен широкому кругу читателей, а перейти с него на C# не так уж сложно. Для максимальной совместимости советую использовать среду Visual Studio .NET 2003 и библиотеки .NET Compact Framework 1.0 SP3.
Приступим к созданию первой программы. Запускаем Visual Studio, меню
File > New > Project, здесь выбираем
Visual Basic Projects > Smart Device Application. Откроется окно
Smart Device Application Wizard (
рис. 1).
Выбираем платформу Pocket PC и тип проекта
Windows Application.
Все! Можем начинать работать!
Теперь у нас есть шаблон формы размером 320240 точек стандартное разрешение экранов КПК. Если вы планируете создавать приложения для новых моделей с дисплеем 640480, вам понадобится всего лишь установить SDK для этих устройств и выбрать соответствующий шаблон в Smart Device Application Wizard.
Разместим на форме элементы
TextBox,
Label и два
Button. В окне
Properties присвоим им имена
txt1,
lbl1,
btn1 и
btn2 соответственно. Добавим элемент
InputPanel, который используется для вызова пользователем экранной клавиатуры (еще ее называют SIP Software Input Panel). Добавляем меню (пока меню не подключено, при работе программы экранная клавиатура остается недоступной). Чтобы оно не пустовало, включим в него раздел
Info с вложенным
System info, который будет выводить месседжбокс с информацией о версии операционной системы. Аналогично «настольным» программам, процесс создания меню мобильных приложений в Visual Basic .NET так же нагляден и прост.
Двойной щелчок по пустому пространству формы и мы попадаем в окно
Code. В
Form1_Load прописываем код:
Обработка нажатия на кнопку
System Info в меню:
Теперь перейдем к кнопке
btn1. В событие btn1_Click вписываем:
btn2 будет закрывать программу, переспросив пользователя:
Теперь посмотрим, что за средства нам даются для работы с аппаратными кнопками точнее, с четырехпозиционным джойстиком. Когда мы нажимаем на кнопки, программа получает код Keys.F21. Но чтобы определить, какую из четырех позиций занял джойстик, нам понадобится API-функция GetAsyncKeyState(). Когда нажимается кнопка, функция выдает значение меньше 0.
Объявляем API-функцию:
Обработка происходит в Form1_KeyDown:
Почти готово! Теперь попробуем запустить нашу суперсложную программу. Нажимаем
F5 (или кнопку
Start) и видим меню подобного вида
рис. 2.
Нам предлагают выбрать тип устройства, на котором будет выполняться наша программа. Последний в списке
Pocket PC Device требует подключенного «реального» КПК, остальные работают в режиме эмуляции прямо на настольном компьютере. Сразу хочу предупредить, что программа на эмуляторе и на настоящем КПК очень часто работает по-разному, особенно это касается Pocket PC 2002/2003 Emulator. Если у вас под рукой нет КПК, а только старые (2002/2003) эмуляторы, лучше всего скачать свежую версию, которая входит в комплект Visual Studio .NET 2005. Загрузить ее можно, например, отсюда: www.microsoft.com/downloads/details.aspx?FamilyID=C62D54A5-183A-4A1E-A7E2-CC500ED1F19A&displaylang=en.
При старте эмулятора мы увидим типичный рабочий стол, знакомый всем пользователям Windows Mobile. Чтобы запустить нашу первую программу, проследуем по адресу
Start > Programs > File Explorer. После запуска File Explorer (Проводник) нам нужно зайти в директорию My Device\Program Files\[название вашего проекта]. Запускаем (
рис. 3)!
Как видите, ничего сложного, все почти как в «настольном» программировании.
Установка и распространение программы
Установка программ на КПК производится через Windows Installer (запуск и установка с настольного ПК, требует соединения с наладонником) или редистрибутивный CAB-файл (копируется в память КПК, лишь затем устанавливается). Наиболее простой способ распространения программы начинающего разработчика CAB-файл. При запуске он автоматически распаковывает файлы вашей программы, устанавливает их в директорию \Program Files и самоудаляется.
Чтобы приступить к созданию CAB-файлов, из меню Visual Studio выберите
Build > Build Cab file. Теперь в директории, где мы сохранили наш проект, заходим в папку \Cab\Debug\ и видим там среди прочего такие файлы: TEST1_PPC.ARM.cab, TEST1_PPC.ARMV4.cab, TEST1_PPC.MIPS.cab, TEST1_PPC.SH3.cab, TEST1_PPC.WCE420X86.cab, TEST1_PPC.X86.cab. Здесь «TEST1» название нашего проекта в Visual Studio.
Если вы читали прошлую статью, то наверняка вспомните, что суффиксы «ARM», «ARMV4», «MIPS» и т.д. в названиях этих cab’ов тип процессора КПК, на котором будет запускаться программа. Например, на моем HP iPAQ 2210 запустятся только установщики ARM и ARMV4. Новое поколение эмуляторов имитирует работу мобильных процессоров и, скорее всего, без проблем запустит ARM. При распространении программ обычно включают версии для всех процессоров, и пользователь сам волен выбирать, что ему ставить. Кстати, одно из главных отличий Windows Installer от CAB-файлов: первый самостоятельно определяет тип процессора и сразу устанавливает нужный дистрибутив.
Вообще, если вы собрались серьезно заняться написанием и распространением (например, через Интернет) программ для КПК, имейте в виду, что подготовка установочных дистрибутивов дело непростое, требующее внимательности и кропотливости. Подробную информацию об инсталлерах можно найти на Microsoft MSDN.
На сегодня все! Теперь у вас есть некоторое общее представление о программировании КПК на Visual Basic .NET. В следующих статьях мы будем изучать тонкости программирования наладонников! До встречи!
|