Чтение онлайн

на главную

Жанры

Программирование для карманных компьютеров

Волков Владимир

Шрифт:

? Полный цикл поставки включает в себя создание установочного комплекта на настольном компьютере (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 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. Код будет состоять всего из одной строчки.

Поделиться:
Популярные книги

По осколкам твоего сердца

Джейн Анна
2. Хулиган и новенькая
Любовные романы:
современные любовные романы
5.56
рейтинг книги
По осколкам твоего сердца

На границе империй. Том 7. Часть 2

INDIGO
8. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
6.13
рейтинг книги
На границе империй. Том 7. Часть 2

Провинциал. Книга 6

Лопарев Игорь Викторович
6. Провинциал
Фантастика:
космическая фантастика
рпг
аниме
5.00
рейтинг книги
Провинциал. Книга 6

Эфир. Терра 13

Скабер Артемий
1. Совет Видящих
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Эфир. Терра 13

Её (мой) ребенок

Рам Янка
Любовные романы:
современные любовные романы
6.91
рейтинг книги
Её (мой) ребенок

Темный Патриарх Светлого Рода 3

Лисицин Евгений
3. Темный Патриарх Светлого Рода
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Темный Патриарх Светлого Рода 3

Великий князь

Кулаков Алексей Иванович
2. Рюрикова кровь
Фантастика:
альтернативная история
8.47
рейтинг книги
Великий князь

Академия

Сай Ярослав
2. Медорфенов
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Академия

Вторая невеста Драконьего Лорда. Дилогия

Огненная Любовь
Вторая невеста Драконьего Лорда
Любовные романы:
любовно-фантастические романы
5.60
рейтинг книги
Вторая невеста Драконьего Лорда. Дилогия

Мир-о-творец

Ланцов Михаил Алексеевич
8. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Мир-о-творец

Невеста вне отбора

Самсонова Наталья
Любовные романы:
любовно-фантастические романы
7.33
рейтинг книги
Невеста вне отбора

Адепт: Обучение. Каникулы [СИ]

Бубела Олег Николаевич
6. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.15
рейтинг книги
Адепт: Обучение. Каникулы [СИ]

Мимик нового Мира 8

Северный Лис
7. Мимик!
Фантастика:
юмористическая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Мимик нового Мира 8

Утопающий во лжи 3

Жуковский Лев
3. Утопающий во лжи
Фантастика:
фэнтези
рпг
5.00
рейтинг книги
Утопающий во лжи 3