Программирование для карманных компьютеров
Шрифт:
? Полный цикл поставки включает в себя создание установочного комплекта на настольном компьютере (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] содержит несколько
Таблица 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. Параметры записи ключей реестра
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 Card\Menu\, а файл readme.txt – в каталог \Му Documents\Menu\.
В реестре надо создать ключ, регистрирующий программу. Для данного проекта этот этап не является обязательным, но в цеях обучения его следует рассмотреть.
Также надо создать ярлык для программы в папке \Windows\Start Menu\ Programs.
2. Теперь можно собрать все необходимые файлы в одну папку C: \setup. К необходимым файлам относятся те файлы, которые нужно установить на устройства. Файл menu.exe находится в папке \menu\ARMRel. Чтобы эта папка была создана, необходимо скомпилировать приложение, указав в качестве активной конфигурации Win32 (WCE ARM) Relias. Также потребуются файлы из папки C: \Windows СЕ Tools\wce300\Pocket PC 2002\support\ActiveSync\windows се application installation. В ней нужно найти папку cabwiz и создать файлы buildcab.bat и register.bat.
3. Для начала нужно написать содержимое файла buildcab.bat. Код будет состоять всего из одной строчки.