Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

Написание своей собственной программы инсталляции

Содержание Назад Дальше

Как получить важные системные данные

На четвёртом этапе нам потребуются некоторые системные данные: имя пользователя и организация, путь, куда потребуется инсталлировать программу и некоторые другие. Сейчас мы разберёмся, как и откуда эти данные можно получить.

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

Как правило, программа инсталляции берёт эти данные из Windows (поскольку при установке Windows пользователь их уже вводил) и просит всего лишь изменить их, если это необходимо.

Наш вопрос звучит так: где Windows хранит имя пользователя и организацию? Я, правду сказать, не знаю. Но, пробежавшись по реестру, я обнаружил всего лишь два подходящих места, содержащих эту информацию.


HKEY_LOCAL_MACHINESoftwareMicrosoft NTWindows CurrentVersion
HKEY_LOCAL_MACHINESoftwareMicrosoftWindows CurrentVersion
HKEY_CURRENT_USERSoftwareMicrosoftWindows CurrentVersion
RegisteredOwner = 'Имя'
RegisteredOrganization = 'Организация'

В доступной мне версии Windows 95, эти значения хранятся в ветке HKEY_LOCAL_MACHINE, а в Windows NT — HKEY_CURRENT_USER (в подветках Windows или Windows NT).

Поскольку в этом вопросе нет ясности :) я предлагаю проверять обе ветки. Версию операционной системы можно узнать с помощью функции GetVersionEx.

Куда копировать программу
Можно сформулировать наш вопрос и по другому: где находиться каталог Program Files? Некоторые инсталляции считают, что это C:Program Files. В действительности, конечно, он может находиться на другом диске, поэтому мы попробуем поискать его по другому... в реестре.
HKEY_LOCAL_MACHINESoftwareMicrosoftWindows CurrentVersion
ProgramFilesDir = 'D:Program Files'

Можно воспользоваться функцией SHGetSpecialFolderLocation (это даже более корректно с точки зрения Microsoft). Пример использования этой функции вы обнаружите несколькими файлами позже.

Для изменения каталога вы можете вызывать функции SelectDirectory или SHBrowseForFolder. Можно также создать собственное окно диалога "Выбор каталога" с помощью компонента DirectoryListBox. Подробнее о выборе каталога мы поговорим позднее, когда будем рассматривать тонкости процесса инсталляции.

Сколько осталось свободного места на диске
Программа инсталляции перед копированием файлов обязана проверить, сколько на целевом диске осталось свободного дискового пространства. Это делается при помощью функции GetDiskFreeSpace (из модуля Windows) или функции DiskFree (из модуля SysUtils). Вторая функция — это надстройка Delphi над Win API (в смысле, она вызывает GetDiskFreeSpace), но у неё значительно меньше параметров.
Группы программ
Обычно программа инсталляции создаёт для новой программы новую группу. Как правило, когда вы вводите название группы, рядом присутствует список, в котром перечислены все существующие группы. Получить такой список можно двумя способами. Один из них — работа с DDE-сервером, который называется Program Manager. Этот способ мы подробно рассмотрим чуть позже. Второй способ не очень сложен и основан на том факте, что всё меню "Программы" находиться в одном из каталогов вашего диска. Все подменю являются на самом деле подкаталогами, а пукнты — обычными ссылками (файлами с расширением .lnk).

Путь к папке, содержащей меню "Программы", вы можете найти в реестре:


HKEY_CURRENT_USERSoftwareMicrosoftWindows CurrentVersionExplorerShell Folders
Programs = 'D:WINNTProfilesmarkГлавное менюПрограммы'

Не очень сложно прочитать содержимое этого каталога с помощью функций FindFirst/FindNext. Ниже мы и об этом поговорим подробнее, поскольку чтение содержимое каталогов потребуется нам при написании универсальной процедуры копирования файлов.

Содержание Назад Дальше


  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте