![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
привет всем!!
как, сделать? допустим имею программу: Код:
var s:string; button click1 ........ begin s:='text'; end. как сделать чтоб допустим при нажатие на кнопку программа копировала сама себя в другое место, но с сохраненными парамитрами чтоб в следущей программе уже не надо было нажимать кнопку а s уже было присвоенно 'text' я конечно извеняюсь за столь примитивное описание но как я не думал по другому ни как не мог сформулировать Последний раз редактировалось M.A.D.M.A.N., 04.02.2013 в 09:07. |
|
#2
|
||||
|
||||
|
Локальные переменные - никак (ну можно в принципе, отыскать секцию кода, оттуда команду, откуда берутся данные для присвоения).
Глобальные - по смещениям. Можно еще через resourcestring. Тебе для чего? З.Ы. Код не дам ибо ты постил темы по поводу написания трояна. |
|
#3
|
|||
|
|||
|
а если чтоб просто в memo текст сохранился?
|
|
#4
|
||||
|
||||
|
Изменить свойства dfm, через доступ к ресурсу.
|
|
#5
|
|||
|
|||
|
как это сделать ?
напиши пож по падрлобней?? |
|
#6
|
||||
|
||||
|
|
|
#7
|
||||
|
||||
|
вот фрагменты кода... далее думай сам))
Код:
function AttachToFile(const AFileName: string; MemoryStream: TMemoryStream): Boolean;
var
aStream: TFileStream;
iSize: Integer;
begin
Result := False;
if not FileExists(AFileName) then
Exit;
try
aStream := TFileStream.Create(AFileName, fmOpenWrite or fmShareDenyWrite);
MemoryStream.Seek(0, soFromBeginning);
aStream.Seek(0, soFromEnd);
aStream.CopyFrom(MemoryStream, 0);
iSize := MemoryStream.Size + SizeOf(Integer);
aStream.Write(iSize, SizeOf(iSize));
finally
aStream.Free;
end;
Result := True;
end;
function LoadFromFile(const AFileName: string; MemoryStream: TMemoryStream): Boolean;
var
aStream: TFileStream;
iSize: Integer;
begin
Result := False;
if not FileExists(AFileName) then
Exit;
try
aStream := TFileStream.Create(AFileName, fmOpenRead or fmShareDenyWrite);
aStream.Seek(-SizeOf(Integer), soFromEnd);
aStream.Read(iSize, SizeOf(iSize));
if iSize > aStream.Size then
begin
aStream.Free;
Exit;
end;
aStream.Seek(-iSize, soFromEnd);
MemoryStream.SetSize(iSize - SizeOf(Integer));
MemoryStream.CopyFrom(aStream, iSize - SizeOf(iSize));
MemoryStream.Seek(0, soFromBeginning);
finally
aStream.Free;
end;
Result := True;
end;
procedure TForm1.SaveClick(Sender: TObject);
var
aStream: TMemoryStream;
begin
aStream := TMemoryStream.Create;
Memo1.Lines.SaveToStream(aStream);
AttachToFile('Test.exe', aStream);
aStream.Free;
end;
procedure TForm1.LoadClick(Sender: TObject);
var
aStream: TMemoryStream;
begin
aStream := TMemoryStream.Create;
LoadFromFile('Test.exe', aStream);
Memo1.Lines.LoadFromStream(aStream);
aStream.Free;
end;
|