Владимир Волков - Программирование для карманных компьютеров
? Ключ 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.