Главная страница
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.023 c
15-1179987422
Kedr
2007-05-24 10:17
2007.06.17
Посоветуйте литературу


15-1179591112
Calibr
2007-05-19 20:11
2007.06.17
Задержка в *.bat


15-1180002314
zdm
2007-05-24 14:25
2007.06.17
Иконки из ресурсов


15-1179664607
Bad_B
2007-05-20 16:36
2007.06.17
Блоги


11-1162392613
Blackie
2006-11-01 17:50
2007.06.17
открытие файла в memo