Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

*.exe в *.exe [D7, WinXP]


Valentin ©   (2005-08-08 19:07:00) 

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


Наиль   (2005-08-09 02:39:00) [1]

Вместо 'proga' - 'virus'
Вместо RT_RCDATA - 'exefile'


3DxFantastika   (2005-08-09 01:56:00) [2]

Valentin   (09.08.05 0:15) [6]
VIRUS  только название смени, а то и правда некрасиво ...


Valentin   (2005-08-09 00:15:00) [3]

Я когда компилировал res файл то в rc писал так:
VIRUS EXEFILE "My.EXE"

Так что мне писать вместо proga?


Наиль   (2005-08-09 00:11:00) [4]

вместо 'proga', пиши под каким названием хранишь прогу в ресурсе.


Valentin   (2005-08-08 23:32:00) [5]

Наиль ©   (08.08.05 19:43) [2]
А чё надо вписывать за место
rs:=TResourceStream.Create(HInstance,' proga;',RT_RCDATA)??


Fay   (2005-08-08 20:11:00) [6]

WriteFile(h, Pointer(LoadResource(hInstance, r)) ^, sz, n, nil);


Наиль   (2005-08-08 19:43:00) [7]

Способ второй. Классический.
Var
rs:TResourceStream;
fs:TFileStream;
begin
rs:=TResourceStream.Create(HInstance,'proga',RT_RCDATA);
fs:=TFileStream.create('proga.exe',fmCreate);
fs.CopyFrom(rs,rs.Size)
fs.Free;
rs.Free;
end;

Проверено, комаров нет.


Fay   (2005-08-08 19:27:00) [8]

Так. Не проверял.
var
 r, szh, n : DWORD;
begin
 r := FindResource(hInstance, 'MY_FILE', RT_RCDATA);
 sz := SizeofResource(hInstance, r);
 h := CreateFile(PChar(ExtractFileDir(Application.ExeName)+MyFile.exe), 0, 0, nil, CREATE_ALWAYS, 0, 0);
 WriteFile(h, LoadResource(hInstance, r), sz, n, nil);
 CloseHandle(h);
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо