Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2008, 17:48   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
Сообщение Install

Хочу написать программу, которая смогла бы выгрузить из себя два файла (exe и ini) по указанному адресу (адрес нужной папки будет взят из реестра). Сделать что-то на подобии инсталяционного приложения. С чего начать и как это сделать?
Shouldercannon вне форума Ответить с цитированием
Старый 04.07.2008, 17:54   #2
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

Скачай Inno Setup, хорошая весчь.
_Engine_ вне форума Ответить с цитированием
Старый 04.07.2008, 18:52   #3
AXS
Программер
Пользователь Подтвердите свой е-майл
 
Аватар для AXS
 
Регистрация: 03.07.2008
Сообщений: 36
По умолчанию

Чтоб засунуть любой файл в прогу создай текстовый файл my_res.rc в каталоге ..\delphi\bin\ , напиши в нём MYRES RCDATA "proga.exe" или MYRES RCDATA "inifile.ini". При этом MYRES это имя ресурса которое будет использоваться в проге, а proga.exe и inifile.ini это файлы которые хочеш засунуть (должны лежать рядом с my_res.rc . Сохрани, а потом перетащи my_res.rc на brcc32.exe. У тебя создастся файл my_res.res
Далее в проге, под строчкой {$R *.dfm} допиши {$R my_res.res}. Откомпилируй и файлы уже в проге.

Чтобы их вытащить на свет божий напиши в проге такой код:
Код:
var
  stream: TResourceStream;
begin
  stream := TResourceStream.Create(HInstance, 'MYRES', RT_RCDATA);
  with TFileStream.Create('proga.exe', fmCreate) do
   begin
     CopyFrom(stream, stream.Size);
     Free;
   end;
end;
<AXS> Если один из двух выходов - ловушка, надо найти третий... </AXS>
<AXS> "Живой" - явление временное... </AXS>

<><><> www.mak-ms.com <><><>

Последний раз редактировалось AXS; 05.07.2008 в 11:53.
AXS вне форума Ответить с цитированием
Старый 05.07.2008, 11:31   #4
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

А лучше поставь RXLib компоненты. После их установки, работа с ресурсами будет проще простого, не надо будет всякие rc файлы создавать и отдельно их компилировать. Если что помогу.
FaTaL вне форума Ответить с цитированием
Старый 05.07.2008, 23:01   #5
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Inno Setup у меня есть, но не не сможет определить адрес к приложению через реестр. Для создания res файлов я использую Resource Builder тоже не плохая вешь. RxLib есть, но там проблема с установкой.
Shouldercannon вне форума Ответить с цитированием
Старый 05.07.2008, 23:01   #6
Черничный
Форумчанин
 
Регистрация: 27.01.2007
Сообщений: 293
По умолчанию

Цитата:
Сообщение от AXS Посмотреть сообщение
Чтоб засунуть любой файл в прогу создай текстовый файл my_res.rc в каталоге ..\delphi\bin\ , напиши в нём MYRES RCDATA "proga.exe" или MYRES RCDATA "inifile.ini". При этом MYRES это имя ресурса которое будет использоваться в проге, а proga.exe и inifile.ini это файлы которые хочеш засунуть (должны лежать рядом с my_res.rc . Сохрани, а потом перетащи my_res.rc на brcc32.exe. У тебя создастся файл my_res.res
Далее в проге, под строчкой {$R *.dfm} допиши {$R my_res.res}. Откомпилируй и файлы уже в проге.

Чтобы их вытащить на свет божий напиши в проге такой код:
Код:
var
  stream: TResourceStream;
begin
  stream := TResourceStream.Create(HInstance, 'MYRES', RT_RCDATA);
  with TFileStream.Create('proga.exe', fmCreate) do
   begin
     CopyFrom(stream, stream.Size);
     Free;
   end;
end;
Самый доходчинвый и удобный вариант! FaTaL, давай свою тему выкладывай))
Черничный вне форума Ответить с цитированием
Старый 05.07.2008, 23:16   #7
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

Цитата:
Сообщение от Shouldercannon Посмотреть сообщение
Inno Setup у меня есть, но не не сможет определить адрес к приложению через реестр.
Ошибаешься, в Inno Setup есть набор функций для работы с реестром.
_Engine_ вне форума Ответить с цитированием
Старый 05.07.2008, 23:30   #8
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Цитата:
Сообщение от Черничный Посмотреть сообщение
Самый доходчинвый и удобный вариант! FaTaL, давай свою тему выкладывай))
А что именно выложить то? Как извлечь из ресурсов?
FaTaL вне форума Ответить с цитированием
Старый 06.07.2008, 10:27   #9
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Цитата:
А что именно выложить то? Как извлечь из ресурсов?
что за компонент из RxLib, как исполльзовать... Я до настоящего момента тоже всё ручками делал, и через консоль res файлы собирал.
zetrix вне форума Ответить с цитированием
Старый 06.07.2008, 22:51   #10
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
Вопрос

Цитата:
Сообщение от _Engine_ Посмотреть сообщение
Ошибаешься, в Inno Setup есть набор функций для работы с реестром.
Это не сдесь? Мне надо чтобы программа установилась в папку с игрой, но для этого путь к игре надо найти в реестре.
Изображения
Тип файла: jpg directory.jpg (13.1 Кб, 146 просмотров)
Shouldercannon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Install, Uninstall FaTaL Общие вопросы Delphi 8 25.12.2010 07:08
FastReport3 Install uranpro БД в Delphi 3 25.04.2008 18:25
Как сделать install.exe? Bitrayder Общие вопросы C/C++ 1 02.03.2008 12:51
Install Shield Express Mustang Софт 2 29.09.2007 12:13
install shield 4 Рина БД в Delphi 3 09.08.2007 17:46