Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.067 c
15-1179910817
Кевларвестов Семен
2007-05-23 13:00
2007.06.17
Почему-то не устанавливается BDS 2006


2-1180357011
ambhtr
2007-05-28 16:56
2007.06.17
Цветовой оформление формы


1-1176890019
sirin
2007-04-18 13:53
2007.06.17
Вопрос по RTTI


3-1174975498
O.O
2007-03-27 10:04
2007.06.17
Выражение в Insert


11-1162491929
karl
2006-11-02 21:25
2007.06.17
snow (schnee)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский