Волков Владимир
Шрифт:
? 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. Параметры записи ключей реестра
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. Код будет состоять всего из одной строчки.«C: \Setup\cabwiz\CabWiz.exe» «C: \Setup\menu.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 = Software\MyBestCompany\Menu
[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 Tools\Htmlhelp\emtools\WCESETUP.CHM. Раздел Windows CE Directory Identifiers содержит информацию о значениях констант %CEx%, которые применяются в файлах конфигурации.