Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.17;
Скачать: CL | DM;

Вниз

Ресурсы в программе   Найти похожие ветки 

 
Vidog@mobzone.org ©   (2007-04-23 08:20) [0]

Как програмно "вшить" в exe"шник какой-то файл, если у меня
есть его [Handle], [FileName] файла, который надо "вшить",
[ResType] и [ResName], которые будит иметь "вшитый" файл.

ЗЫ: Я сделал ф-ю для извлечения файлов из ресурса, но не могу
сделать ф-ю для "вшивания" файлов.

1.)


function ExtractRes(vHandle : Cardinal; ResType, ResName, ResNewName : String) : boolean;
var
Res : TResourceStream;
begin
Result := true;
try
Res := TResourceStream.Create(vHandle, Resname, Pchar(ResType));
Res.SaveToFile(ResNewName);
except
Result := false;
exit;
end;
Res.Free;
end;


2.)

function ExtractResToStream(vHandle : Cardinal; ResType, ResName : String; var vStream : TMemoryStream) : boolean;
var
Res : TResourceStream;
begin
Result := true;
try
Res := TResourceStream.Create(vHandle, Resname, Pchar(ResType));
vStream := TMemoryStream.Create;
Res.SaveToStream(vStream);
except
Result := false;
exit;
end;
Res.Free;
end;


Вызываются следующим образом:

(1)

var
Wnd : Cardinal;

begin
Wnd := LoadLibrary("resources.dll");
ExtractRes(Wnd, "RCDATA", "FILENAME.EXE", "C:\FILENAME.EXE");
end;


(2)

var
Wnd : Cardinal;
Stream : TMemoryStream;

begin
Stream := TMemoryStream.Create;
Wnd := LoadLibrary("resources.dll");
ExtractResToStream(Wnd, "RCDATA", "FILENAME.EXE", Stream);
Stream.SaveToFile("FILENAME.EXE");
end;


Помогите плз, кто может.


 
Сергей М. ©   (2007-04-23 08:27) [1]

см. BeginUpdeteResource + UpdateResource + EndUpdateResource


 
Vidog@mobzone.org ©   (2007-04-23 08:32) [2]

А не мог бы ты представить пример функции, а то эти методы я уже пробовал, но ничего не получается!!!


 
Сергей М. ©   (2007-04-23 08:34) [3]


> эти методы я уже пробовал, но ничего не получается


Это не методы, а функции.

Показывай что делал и что не получается ...


 
Vidog@mobzone.org ©   (2007-04-23 08:43) [4]

1)Беру Stream : TMemoryStream;
2)Открываю в него нужный мне файл
3)Дописываю в ResourceStream через Write(Stream, SizeOf(Stream));
4)Сохраняю полученный ResourceStream как новый exe файл


 
Vidog@mobzone.org ©   (2007-04-23 08:44) [5]

После этого файл не читается..Как я понимаю чего-то не так делаю...


 
Vidog@mobzone.org ©   (2007-04-23 08:47) [6]

BeginUpdateResource("Test.exe", false);
UpdateResource(Что тут?, "RCDATA", "1.EXE", Какая-то константа?, А тут?, И тут?);


 
Сергей М. ©   (2007-04-23 08:56) [7]

http://www.google.ru/search?hl=ru&newwindow=1&client=firefox-a&rls=org.mozilla%3Aru%3Aofficial&hs=61&q=Delphi+BeginUpdateResource&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=lang_ru


 
Vidog@mobzone.org ©   (2007-04-23 08:59) [8]

Спасибо хоть за это..:)



Страницы: 1 вся ветка

Текущий архив: 2007.06.17;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
15-1179915575
DiamondShark
2007-05-23 14:19
2007.06.17
Ахтунг в госдуме


1-1176884417
>>DEATH<<
2007-04-18 12:20
2007.06.17
отправка запроса


2-1180100114
забыл ник %)
2007-05-25 17:35
2007.06.17
Подсказка в трее


2-1179912586
DmitrichJ
2007-05-23 13:29
2007.06.17
Размер файла и создание каталога


1-1176805616
badevlad
2007-04-17 14:26
2007.06.17
Есть ли предел у оптимизации?