![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
*.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;