Программирование КПК на Visual Basic .NET
19.03.09Мой Компьютер, №01-02 (432-433), 01.01.2007
Настройка необходимого ПО и первая программа
Прежде чем начать, нам нужно убедиться в наличии всех необходимых программ и компонентов. Как я уже говорил, программирование для карманных компьютеров не поддерживается в 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.
Все! Можем начинать работать!
Теперь у нас есть шаблон формы размером 320´240 точек — стандартное разрешение экранов КПК. Если вы планируете создавать приложения для новых моделей с дисплеем 640´480, вам понадобится всего лишь установить 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 прописываем код:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
lbl1.Text = «Input your name:»
btn1.Text = «Hello!»
btn2.Text = «Exit»
txt1.Text = «»
Me.Menu = MainMenu1 ‘подключаем меню
End Sub
Обработка нажатия на кнопку System Info в меню:
Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem2.Click
Dim sVer As String
sVer = System.Environment.OSVersion.ToString ‘определяем версию ОС через класс System.Environment
MsgBox(«Your OS is: » & vbCrLf & sVer) ‘vbCrLf — новая строка
End Sub
Теперь перейдем к кнопке btn1. В событие btn1_Click вписываем:
Private Sub btn1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn1.Click
Dim sName As String
sName = txt1.Text
MsgBox(«Hello, » & sName)
End Sub
btn2 будет закрывать программу, переспросив пользователя:
Private Sub Btn2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn2.Click
Dim sAnsw As String
sAnsw = MsgBox(«Are you sure?», MsgBoxStyle.YesNo + MsgBoxStyle.Exclamation)
If sAnsw = vbYes Then
Me.Close()
End If
End Sub
Теперь посмотрим, что за средства нам даются для работы с аппаратными кнопками — точнее, с четырехпозиционным джойстиком. Когда мы нажимаем на кнопки, программа получает код Keys.F21. Но чтобы определить, какую из четырех позиций занял джойстик, нам понадобится API-функция GetAsyncKeyState(). Когда нажимается кнопка, функция выдает значение меньше 0.
Объявляем API-функцию:
Declare Function GetAsyncKeyState Lib «coredll.dll» Alias «GetAsyncKeyState» (ByVal vKey As Keys) As Short
Обработка происходит в Form1_KeyDown:
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
If (e.KeyCode = Keys.F21) Then
If (GetAsyncKeyState(Keys.Down) < 0) Then
MsgBox(«You pushed Down button»)
End If
If (GetAsyncKeyState(Keys.Up) < 0) Then
MsgBox(«You pushed Up button»)
End If
If (GetAsyncKeyState(Keys.Right) < 0) Then
MsgBox(«You pushed Right button»)
End If
If (GetAsyncKeyState(Keys.Left) < 0) Then
MsgBox(«You pushed Left button»)
End If
End If
End Sub
Почти готово! Теперь попробуем запустить нашу суперсложную программу. Нажимаем 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 DeviceProgram Files[название вашего проекта]. Запускаем (рис. 3)!
Как видите, ничего сложного, все почти как в «настольном» программировании.
Установка и распространение программы
Установка программ на КПК производится через Windows Installer (запуск и установка с настольного ПК, требует соединения с наладонником) или редистрибутивный CAB-файл (копируется в память КПК, лишь затем устанавливается). Наиболее простой способ распространения программы начинающего разработчика — CAB-файл. При запуске он автоматически распаковывает файлы вашей программы, устанавливает их в директорию Program Files и самоудаляется.
Чтобы приступить к созданию CAB-файлов, из меню Visual Studio выберите Build > Build Cab file. Теперь в директории, где мы сохранили наш проект, заходим в папку CabDebug и видим там среди прочего такие файлы: 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. В следующих статьях мы будем изучать тонкости программирования наладонников! До встречи!
Сергей ЖУК
Web-droid редактор
Не пропустите интересное!
Підписывайтесь на наши каналы и читайте анонсы хай-тек новостей, тестов и обзоров в удобном формате!


Ugreen Uno RG Gan – зарядка 100 Вт с улыбкой



Мне нравится, как оно заряжается, быстро, не сильно греется, еще и улыбается. Вероятно, такая ситуация была в голове у сотрудников компании Ugreen когда они разрабатывали новую модель Ган-зарядки.

Холодильниками Samsung можно будет управлять зарегистрированным голосом Samsung
Функция использует голосового помощника Bixby, который теперь способен распознавать несколько голосов, зарегистрированных либо на самом холодильнике
Ноутбук Panasonic Let’s Note SC получит съемный аккумулятор и круглый сенсорный трекпад Panasonic ноутбук
Panasonic Let’s Note SC — компактный и производительный ноутбук для деловых пользователей с автономностью до 12,7 часов при воспроизведении видео