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

Вниз

Запись в EXE фаил   Найти похожие ветки 

 
Mixir ©   (2002-11-23 14:18) [0]

Как написать программу которая будет записывать
в другой EXE фаил строку и как этому EXE ее прочитать???
(Нужен пример).Зарание спасибо 8)


 
ION T ©   (2002-11-23 14:49) [1]

Добавь строку в оверлей ехе-шника и последним двордом всунь ее длинну.


 
Mixir ©   (2002-11-23 20:29) [2]

э-э-э-э А по конкретней??? (Напишите пример ПЛИЗЗЗЗЗЗЗ)


 
ION T ©   (2002-11-23 22:29) [3]

Пишешь так:

const
FileName = "anyfile.exe";
var
f: TFileStream;
s: string;
size: integer;
begin
f:= TFileStream.Create(FileName, fmOpenReadWrite);
try
f.Seek(0, soFromEnd);
s:= "cool";
size:= length(s);
f.WriteBuffer(s[1], size);
f.WriteBuffer(size, sizeof(integer));
finally f.Free end;
end;


А читаешь так:

var
f: TFileStream;
s: string;
size: integer;
begin
f:= TFileStream.Create(Application.ExeName, fmOpenRead or fmShareDenyNone);
try
f.Seek(-sizeof(integer), soFromEnd);
f.ReadBuffer(size, sizeof(integer));
f.Seek(-size - sizeof(integer), soFromEnd);
setlength(s, size);
f.ReadBuffer(s[1], size);
edit1.Text:= string(s);
finally f.Free end;
end;


Надеюсь понятно...


 
Morfein ©   (2002-11-23 23:02) [4]

Ну да... метод ещё тот :)))


 
Mixir ©   (2002-11-24 10:29) [5]

Спасибо за инфу :))


 
Novichek ©   (2002-11-24 14:51) [6]

а как приклеить к экзешнику файл а потом его оттуда вытащить?


 
ION T ©   (2002-11-24 15:11) [7]

Точно так же...создаешь два потока, перемещаешся в конец файла и используешь метод CopyFrom()....

> Morfein © (23.11.02 23:02)
Если ты имел в виду что можно запихнуть строку в ресурс со всеми вытекающеми отсюда фиксапами, то можно - напиши код. А можно, если длинна небольшая, то и вместо строки досового стуба записать, можно названия секций переименовать так чтобы они в сумме давали требуемую строку, можно алайнинговые дыры между секциями заполнить, может еще чего можно, но вот файл туда пихать вряд-ли стоит (ну разве что виральный код можно;)


 
ION T ©   (2002-11-24 15:19) [8]

> Novichek © (24.11.02 14:51)
А, это ты про флеш спрашивал?

Если это надо при компиляции, то его в ресурс запихнет сам компилятор (линкер)....на delphibase.endimus.com есть как это делать...но можно и приведенным выше способом...


 
Novichek ©   (2002-11-24 15:25) [9]

ION T © (24.11.02 15:19)
а в каком разделе смотреть?


 
ION T ©   (2002-11-24 15:47) [10]

Короче создаешь flash.rc файл со строкой типа:
MyMovie Flash MyMovie.swf

Отправляешь файл на brcc32.exe кот находится в папке DelphiХ\bin\, получишь файл flash.res, а в коде своей проги напишешь {$R flash.res}. Вытягивать следующей процедурой:

procedure ExtractRes(const ResType, ResName, ResNewName: string);
var Res:TResourceStream;
begin
Res:=TResourceStream.Create(Hinstance,Resname,Pchar(ResType));
Res.SavetoFile(ResNewName);
Res.Free;
end;


Вызываешь так:
ExtractRes("Flash", "MyMovie", "C:\MyMovie.swf");


 
Novichek ©   (2002-11-24 16:03) [11]

ION T © (24.11.02 15:47)
извини за идиотский вопрос, но как это:"создаешь flash.rc файл"?


 
Карлсон ©   (2002-11-25 18:33) [12]

открываешь "Блокнот", там пишешь нужную тебе строку, потом сохраняешь его с расширением *.rc


 
SemFLY ©   (2002-11-25 21:05) [13]

Novichek, Можно и *.txt файл создать ...
А строку такую в него напиши

MyMovie Flash C:\MyMovie.swf

- - -
Хотя это не принципиально ;)


 
KSergey ©   (2002-11-28 08:16) [14]

Наконец то нашел ссылки в архивах.
Не оспаривая предложенные методы, предлагаю ознакомиться с обсуждением аналогичной темы в архивах
http://delphi.mastak.ru/forum/digest/?M=D
качаем файл forum-11.11.02.zip, в нем смотрим файл main74.html.

PS: если кому надо - могу выслать свои примерчики чтения/записи ресурсов (запись - только на WinNT платформе)



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

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

Наверх




Память: 0.5 MB
Время: 0.019 c
14-49300
han_malign
2002-12-28 11:15
2003.01.16
---|Ветка была без названия|---


7-49323
MGB
2002-11-04 19:58
2003.01.16
Список пользователей в NT W2K


14-49313
Юрий Зотов
2002-10-20 18:03
2003.01.16
---|Ветка была без названия|---


3-48845
Senator
2002-12-19 15:40
2003.01.16
Bookmark


14-49317
Сатир
2002-12-28 17:21
2003.01.16
Service Unavailable