Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Хранение файлов в программе Добавлено: 11.03.04 14:15  

Автор вопроса:  maxl

Как в программу запихнуть файл (.exe)? Что-бы затем его извлечь и запустить. Ну что-то типо архива получится. Кто знает - плиз хэлп!

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #1
Добавлено: 11.03.04 15:09

Берем запоминаем реальный размер exe файла, далее то что хочется распаковать записываем в конец файла, а извлекать - мы знаем где данные начинаются, мы знаем их окончание (конец файла), берем и извлекаем на диск... все...

Ответить

Номер ответа: 2
Автор ответа:
 2San



Вопросов: 11
Ответов: 68
 Профиль | | #2 Добавлено: 11.03.04 18:30
Можно еще запихнуть ехешник в ресурсы проги. Потом сжимаем прогу upx'ом или
чем-то подобным. В итоге - малый размер и нет гемора с дописыванием в конец
файла. Чтобы распаковать юзай такой код:

Private Function SaveRes(ByRef Id As Long, ByRef File As String, Optional cRes As String = "FILE") As Boolean
Dim B() As Byte
Close
On Error GoTo Ef1
If isFile(File) Then Kill File
B = VB.LoadResData(Id, cRes)
Open File For Binary As #1
Put #1, , B
Close
Erase B
Ef1:
End Function

Вызов ф-ии:
SaveRes 101, "c:\proga.exe", "FILE"

Сан Саныч
mailto:apexsun@narod.ru -=•=- http://apexsun.narod.ru -=•=- ICQ:273825121

> Origin: Узнаешь где раком зимуют!

Ответить

Номер ответа: 3
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #3
Добавлено: 11.03.04 20:06

Второй метод тоже - вариант, но при этом имеется минус - невозможно "на ходу" создавать файлы с посторонними данными, что, в некоторых случаях, критично...

Ответить

Номер ответа: 4
Автор ответа:
 2San



Вопросов: 11
Ответов: 68
 Профиль | | #4 Добавлено: 11.03.04 22:33

мой способ для инсталяторов подходит. а для исполняемой в данный момент проги имхо на лету писать ничего не получится! винда не даст!

Ответить

Номер ответа: 5
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #5
Добавлено: 11.03.04 22:52

Нет, я не о том, я к примеру, хочу написать программу, которая создает патчи... И вот тут можно (даже нужно) использовать оба эти способа...

Т.е. головная программа имеет в ресурсах SFX файл, размер его мы знаем, эта программа сохраняет этот ресурс на диск, и в конец файла дописывает служебную информацию, т.о. головная программа для создания патчей использует второй вариант...

В свою очередь, патч, при запуске, читает ту самую служебную инфу из самого себя, и уже работает с ней...

В данном примере, использовать одни только ресурсы - не получится...

Ответить

Номер ответа: 6
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #6 Добавлено: 12.03.04 10:31

Если не ломает лишний ocx - используй FileContainer.ocx. В него можно запихнуть любой файл, буть то mp3, exe или avi.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам