Введение.
Сейчас КПК и другие мобильные прибамбасы есть уже наверное у каждого десятого. То есть у многих. А раз есть КПК — значит, нужны и программы к ним ). Также очень часто встречается ситуация, что нужная программка для наладонника есть, но она платная). А еще может быть, что Вам самим захочется добавить какие-нибудь функции для Вашего любимого девайса. В этом Вам поможет наш небольшой обзор. Писать будем на языке С# в всенародно любимой Visual Studio 2005. Вы увидите, что писать такие приложения совсем несложно и процесс не очень отличается от написания программ для обычных компьютеров x86.
Эмулятор Pocket PC.
Прежде всего уясним, что наши приложения будут написаны для платформы Windows Mobile. Чтобы сделать жизнь разработчика проще и приятнее, в VS2005 включили эмулятор мобильного детища майкрософт). С его помощью разработка приложений под мобильные платформы происходит почти так же, как под обычные x86-компьютеры. В состав Visual Studio 2005 входит эмулятор Windows Mobile 2003, поэтому наши приложения будут написаны именно под нее. Сейчас уже вышли Windows Mobile версии 5.0 и 6.0, поэтому при программировании под современные КПК могут быть небольшие отличия.
В общем, приступим). Вот так выглядит окно эмулятора Pocket PC:
Создаём приложение для КПК.
Запускаем Visual Studio и создаем новое приложение.

Перед нами появится форма приложения. Т.к. в Windows Mobile нет возможности произвольно задавать размер окна, форма приложения занимает весь экран наладонника.
Разместим на форме компоненты:
- 2 Label'a
- 2 TextBox'a
- 1 MainMenu
- 1 PictureBox
Дадим им новые названия, и в итоге получится вот такая форма:

Теперь добавим какие-нибудь функции в наше приложение. Что интересно, можно сделать обработку нажатия всех клавиш ). И все они будут работать внутри приложения). Если Вы не сделаете обработку каких-либо клавиш, они просто будут иметь дефолтное значние. Для изменения функции клавиш достаточно нажать на одну из кнопок КПК на форме, и вы сразу можете писать свой код обработки нажатия клавиши.

Вот пример кода для программирования кнопок на КПК:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if ((e.KeyCode == System.Windows.Forms.Keys.Up))
{
// Rocker Up
// Up
}
if ((e.KeyCode == System.Windows.Forms.Keys.Down))
{
// Rocker Down
// Down
}
if ((e.KeyCode == System.Windows.Forms.Keys.Left))
{
// Left
}
if ((e.KeyCode == System.Windows.Forms.Keys.Right))
{
// Right
}
if ((e.KeyCode == System.Windows.Forms.Keys.Enter))
{
// Enter
}
}* This source code was highlighted with Source Code Highlighter.
На кнопку “Enter” можете прописать код типа вот такого:
//Обработка события по нажатию клавишы «Enter»
if ((e.KeyCode == System.Windows.Forms.Keys.Enter))
{
MessageBox.Show(«Это текст сообщения», «Сообщение!»);
}* This source code was highlighted with Source Code Highlighter.
Далее скомпилируем приложение, нажав на клавишу F5. При нажатии на кнопку Enter мы увидим сообщение.
Теперь задействуем ранее добавленные нами кнопки. Дважды кликнув на форме на кнопку PushMe!, приступим к написанию обработчика для нее:
private void button1_Click(object sender, EventArgs e)
{
//Если в поле введены верные данные то выведем сообщение об этом
if (LoginTb.Text == «Login» && PasswordTb.Text == «Password»)
{
MessageBox.Show(«Вы успешно авторизованы!»,«Information»);
}
//Иначе
else
{
MessageBox.Show(«Не верный Логин/Пароль!!!», «Information»);
}
}
* This source code was highlighted with Source Code Highlighter.
Снова скомпилируем программу и посмотрим на результаты. Теперь, если ввести в графы Login и Password те самые слова «Login» и «Password» (оба слова с большой буквы), мы получим сообщение «Вы успешно авторизованы».После компиляции в папке Debug появляется exe-файл.
Заключение.
Как вы убедились, программирование приложений для обычных компьютеров и для КПК ничем особенным не отличается. В случае КПК все может быть даже проще из-за того, что требования для таких приложений менее серьезные, чем для приложений для «обычной» Windows. В общем, это стоит попробовать, особенно если у вас есть свой наладонник :). Далее вы можете написать любое приложение, на сколько вам хватит фантазии и сил:)
Enjoy!
Исходник:
скачать
Оригинал статьи — http://coderszone.info/305-programmirovanie-dlja-mobilnykh.html
комментарии (45)
значит, с почином вас.
я кстати тоже как-то делал программу, только для WM smartphone edition
надо сказать, .net на мобильных платформах несколько ограничен, но удовольствие от процесса получил, достаточно полезный опыт даже для тех, кто не пишет для мобильных устройств
P.S — извиняюсь за большое количество скриншотов.
но нужно понимать, что в отличии от java платформа .net не предустанавливается, поэтому изначально .net находится в проигрыше
на самом деле я не думаю, что java- и .net- программы чем-то друг-друга лучше или хуже, наверняка и памяти жрут одинаково и места съедают
Кроме того, в J2ME много иных интерфейсов и API, которые не применяются в J2SE в силу своей специфичности. Скорость приложений J2ME сопоставима с нативными, так как давно уже в мобильниках применяется аппаратный сопроцессор Java-байткода.
Почитать статьи о программировании мобильных устройств можно по этой ссылке:
www.mobilab.ru/articles/index2.php? cat=3
А вот AWT-приложения на Java 1.1 вполне портабельны на КПК (в рамках J2ME CDC/PersonalProfile и отдельной виртуальной машины, например, IBM J9). Такие вполне «полноценные» приложения разрабатывать можно в стандартной среде (в Eclipse или NetBeans, подключив Sun JDK 1.1.8), и тормозить такие приложения будут не меньше, как на большом компьютере, а может и больше. :)
Ставил я на днях програмку, небольшого размера, да и по функциональности два диалога на всю програмку, в общем ничего запредельного в ней нет. Запускаю инсталлятор, он радостно говорит — погодь, загружу необходимое, грузит ссука 80метров дотнетов, ставит их не спрашивая все три — 1,2,3 и потом спрашивает, ну что мне тут полтора метра для установки надо, дашь? поехали?
Так что не люблю я их — ни дотнеты ни яву, тем более на покетах.
Ну, не знаю — я никогда не втречался с таким поведением Java-среды. Вот Дотнет, это да… «высокоинтеллектуальный» образец самоавтоматизации.
могу ошибаться
Возможно его начали предустанавливать начиная с какого-то года, но даже и на WM5 не всех есть .NET
В общем, попробуйте пойти от обратного, количество знаний получите не в пример больше, чем с готовой статьи.
:)
myppc.ru/2007/02/10/aklimov_programmirovanie_kpk_i_smartfonov_na_net_compact_framework.html
Но, дело в том что студия сама данный код сгенерировала, я уже данный код править не стал.
Желательно, на примере простого клиент-серверного приложения…
Видимо, всё-таки, пункт меню тут не при чём.
я вообще в программировании не первый день, но про это я не знаю, было бы неплохо без всякого рассусоливания, тоесть на примерах, всё объяснять.
не знаю хватит ли автора статей на 5, но его правда интересно читать…