Поставка приложений

We use cookies. Read the Privacy and Cookie Policy

Поставка приложений

В отличие от среды eVB, в которой есть удобный инструмент Application Install Wizard, в среде eVC подобного мастера нет. Тем не менее в состав Pocket PC SDK входит инструмент, позволяющий создавать поставочные комплекты приложений, разработанных в eVC. В каталоге C: Windows СЕ Toolswce300Pocket PC 2002 supportActiveSyncwindows се application installation находится программа CabWiz.exe с примером поставочного приложения и конфигурационными файлами. Изменяя эти конфигурационные файлы в соответствии с конфигурацией вашего приложения, можно создать его поставочный вариант.

Механизм поставки приложений для Pocket PC включает в себя три основных программы.

? CAB Wizard – приложение, которое создает дистрибутив (CAB-файл) на настольном компьютере.

? Application Manager – один из компонентов ActiveSync, который предоставляет возможность управлять инсталляцией и удалением приложений на Pocket PC с настольного компьютера.

? WCELoad – программа, которая находится на Pocket PC и предназначена для распаковки установочного комплекта, установки файлов на Pocket PC и регистрации установочной информации и информации, необходимой для корректного удаления программы.

? Полный цикл поставки включает в себя создание установочного комплекта на настольном компьютере (CAB Wizard), регистрацию этого комплекта на настольном компьютере, копирование на Pocket PC (Application Manager) и, наконец, распаковку и установку поставочного комплекта на Pocket PC (WCELoad). В данном разделе будет рассматриваться работа с CAB Wizard и процесс создания поставочного комплекта.

Структура файла. inf

Файл с установочной информацией для Pocket PC является стандартным информационным файлом Windows с несколько редуцированной структурой. В файле могут быть находиться секции и ключи, описанные в следующем списке. Если рядом с ключом не указывается его описание, то значение ключа всегда будет таким, как указано в данном списке.

В начале файла располагается обязательная секция [Version].

? Ключ Signature может принимать значения $Windows NT$ или $Windows 95$.

? Ключ Provider позволяет указывать имя компании, которая создала приложение.

? Ключ CESignature принимает значение $Windows СЕ$.

Затем в файле располагается обязательная секция [CEStrings].

? Ключ AppName позволяет указывать имя приложения. Все входы переменной %AppName% в создаваемом inf-файле будут заменены на appname.

? Ключ InstallDir задает имя каталога установки на устройстве. Все входы переменной %InstallDir% в создаваемом inf-файле будут заменены на соответствующее значение.

В секции [Strings] разработчик может хранить любые необходимые строковые константы. А в секции [CEDevice] располагается информация о целевой платформе.

? Ключ ProcessorType содержит значение, которое возвращает фукция SYSTEMINFO. dwProcessorType.

? Ключ UnsupportedPlatforms позволяет указывать перечень несовместимых с программой платформ.

? Ключ VersionMin содержит значение, которое возвращается функцией OSVERSIONINF0.dwVersionMinor.

? Ключ VersionMax содержит значение, которое возвращается функцией OSVERSIONINFO.dwVersionMajor.

Также обязательно нужно использовать секцию [Defaultlnstall]. В этой секции определяются имена секций, которые должны использоваться для чтения настроек при копировании файлов, создании или редактировании ключей реестра и создании ярлыков. Те секции, которые не перечислены в этом разделе, не будут использованы, даже если они присутствуют в inf-файле. Обычно секция содержит от двух до пяти ключей.

? Copyfiles (обязательный ключ). Содержит названия секций, из которых осуществляется копирование файлов.

? AddReg (обязательный ключ). Содержит названия секций, содержащих записи, которые нужно внести в реестр.

? Ключ CEShortcuts = содержит названия секций, в которых описано расположение и параметры ярлыков, создаваемых на устройстве.

? Ключ CESetupDLL позволяет указывать имя и расположение библиотеки, в которой содержатся дополнительные функции, вызываемые во время установки.

? Ключ CESelfRegister содержит имена библиотек, которые должны быть зарегистрированы во время установки вызовом функции DllRegisterServer, после чего их регистрация может быть удалена при деинсталляции приложения вызовом функции DllllnregisterServer.

В обязательной секции [SourceDisksNames] описывается расположение устанавливаемого приложения. Ключ diskid позволяет указывать комментарий и путь к каталогу с файлами приложения. Путь может быть как абсолютным, так и относительным.

В обязательной секции [SourceDisksFiles] указывается, на каком диске и в каком каталоге этого диска размещены файлы вашего приложения. Для этого используется ключ filename.

В обязательной секции [DestinationDirs] указывается, в какие подкаталоги на устройстве будут помещены при установке файлы, собранные в группы в секции [CopyFiles]. Ключ DefaultDestDir указывает каталог для установки по умолчанию. Если никакой другой каталог не задан и файл не отнесен ни к одной из групп, то он будет помещен в этот каталог.

Обязательная секция [CopyFiles] содержит несколько секций, имена которых были объявлены в ключе CopyFiles секции [Defaultlnstall]. Каждая такая секция содержит один или несколько ключей destinationfilename,[sourcefilename],[,flags], где destinationfilename – имя файла при копировании на устройство при установке, sourcefilename – имя файла, который копируется (если destination filename и sourcefilename совпадают, то этот параметр указывать не обязательно). В параметре flags указываются константы из табл. 4.6.

Таблица 4.6. Константы копирования файлов

Имя обязательной секции [AddReg] должно быть таким, которое указано в ключе AddReg секции [Defaultlnstall]. В этой секции перечисляются ключи, которые надо добавить к реестру устройства при установке. Для этого используется строка registryrootstring, subkey, [valuename], flags, value [,value]. Параметр registry rootstrings может принимать одно из трех значений.

? HKCR – HKEYCLASSESROOT.

? HKCU – HKEYCURRENTUSER.

? HKLM – HKEY LOCAL MACHINE.

В параметре value_name указывается имя соответствующего параметра в реестре. А параметр flags может состоять из комбинации значений, приведенных в табл. 4.7. Таблица 4.7. Параметры записи ключей реестра

Секция [CEShortCuts] определяется в ключе CEShortCuts секции [DefaultInstall]. Она содержит строки следующего формата:

shortcut_filename,shortcut_type_flag,target_file/path[,standard_destination_path]

Они определяют тип создаваемых ярлыков. В параметре shortcut_filename указывается имя ярлыка (без расширения. lnk). Параметр shortcut_type_flag содержит числовое значение. Если оно равно нулю, то это ссылка на файл, если отлично от нуля, то это ссылка на каталог. В параметре target_file/path указывается имя файла или каталога, на который указывает создаваемый ярлык.

Упражнение 4.8

В этом упражнении будет создаваться комплект поставки для приложения, которое мы разработали в упражнении 4.5.

1. Прежде всего нужно определиться, какие файлы должы быть скопированы на устройство, из каких каталогов они будут взяты, куда помещены, нужны ли записи в реестре, будут ли поставляться с нашей программой COM-компоненты, нуждающиеся в регистрации, и будут ли созданы на устройстве ярлыки. Надо скопировать на устройство файлы menu.exe, menu.ico, bitmap2.bmp и readme.txt. Файлы menu.exe, menu.ico и bitmap2.bmp должны быть помещены в каталог Storage CardMenu, а файл readme.txt – в каталог Му DocumentsMenu.

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

Также надо создать ярлык для программы в папке WindowsStart Menu Programs.

2. Теперь можно собрать все необходимые файлы в одну папку C: setup. К необходимым файлам относятся те файлы, которые нужно установить на устройства. Файл menu.exe находится в папке menuARMRel. Чтобы эта папка была создана, необходимо скомпилировать приложение, указав в качестве активной конфигурации Win32 (WCE ARM) Relias. Также потребуются файлы из папки C: Windows СЕ Toolswce300Pocket PC 2002supportActiveSyncwindows се application installation. В ней нужно найти папку cabwiz и создать файлы buildcab.bat и register.bat.

3. Для начала нужно написать содержимое файла buildcab.bat. Код будет состоять всего из одной строчки.

«C: SetupcabwizCabWiz.exe» «C: Setupmenu.inf» /err err.log

В этой строке указан полный путь к программе CabWiz.exe, путь к конфигурационному файлу menu.inf, и задан файл ошибок err.log.

4. Как следует из предыдущего пункта, для того, чтобы программа отработала как следует, необходимо создать для нее файл конфигурации menu.inf. Для этого нужно щелкнуть внутри папки Setup правой клавишей мыши, из контекстного меню выполнить команду Создать ? Новый текстовый документ. Созданный файл нужно назвать menu.inf и открыть его в Блокноте. Содержимое файла показано в листинге 4.37.

Листинг 4.37

[Version]

Signature = «$Windows NT$»

Provider = «MyBestCompany»

CESignature = «$Windows CE$»

[CEStrings]

AppName = «Menu Sample»

InstallDir = %CE1 %Menu

[Strings]

reg_path = SoftwareMyBestCompanyMenu

[DefaultInstall]

Copyfiles = Files.Main, Files.Help

AddReg = RegSettings

CEShortcuts = Shortcuts

[SourceDisksNames]

1 =,"Menu files",C: setup

[SourceDisksFiles]

menu.exe = 1

bitmap2.bmp = 1

menu.ico = 1

ReadMe.txt = 1

[DestinationDirs]

Files.Main = 0, %InstallDir%

Files.Help = 0, «My Documents»Menu

Shortcuts = 0, %CE11 %

[Files.Main]

menu.exe,0x00000001

menu.ico,0x00000001

bitmap2.bmp,0x00000001

[Files.Help]

ReadMe.txt,0x00000001

[RegSettings]

HKLM,%reg_path%,0x00000000,alpha

HKLM,%reg_path%,test,0x00010001,3

[Shortcuts]

MenuApp,0,menu.exe, %CE11 %

5. После того как будет создан информационный файл, его нужно сохранить в каталоге Setup. Теперь можно запустить программу CabWiz.exe и создать установочный пакет. На самом деле запустить следует файл buildcab.bat. После завершения его работы в папке Setup будет найден файл menu.CAB. Этот файл можно скопировать на устройство и установить его там. Для этого достаточно дважды щелкнуть на файле. Это действие запустит программу установки WCELoad. После установки можно убедиться, что все файлы помещены в нужные каталоги и ярлык создан в указанной папке. Чтобы более подробно ознакомиться с возможностями системы поставки приложений для Pocket PC, в том числе с работой программы Application Manager и синтаксисом файла register.bat, стоит ознакомиться со сведениями, содержащимися в файле C: Windows CE ToolsHtmlhelpemtoolsWCESETUP.CHM. Раздел Windows CE Directory Identifiers содержит информацию о значениях констант %CEx%, которые применяются в файлах конфигурации.

Данный текст является ознакомительным фрагментом.