Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.01.16;
Скачать: [xml.tar.bz2];

Вниз

Запись в 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.01.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.008 c
4-49344
Hanson3003
2002-11-26 09:31
2003.01.16
Как выделить невыгружаемую память?


1-49078
gorv
2003-01-04 22:57
2003.01.16
Sohranenie TLIST v file


3-48890
Essense
2002-12-20 12:47
2003.01.16
ModifySQL


1-49163
Shodan
2003-01-05 23:33
2003.01.16
Внешний вид


14-49238
DOC97
2002-12-26 00:58
2003.01.16
15 WMZ - за прогу





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский