Форум: "Основная";
Текущий архив: 2007.06.17;
Скачать: [xml.tar.bz2];
ВнизРесурсы в программе Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.041 c