Программирование КПК на Visual Basic .NET

 | 18.32

Мой Компьютер, №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. В следующих статьях мы будем изучать тонкости программирования наладонников! До встречи!

Сергей ЖУК

Robo User
Web-droid editor

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *