Registriert seit: 17. Sep 2002
314 Beiträge
|
Re: eine belibige datei in ein prog einbinden
30. Apr 2004, 22:53
Suchst du vielleicht das hier...
Delphi-Quellcode:
// Getestet mit D4 unter WinME
// Um eine andere EXE (oder DLL, oder..oder..) als Ressource in das eigene
// Programm einzubinden, muss man logischerweise zunächst eine Ressource
// erzeugen. Dazu kann man sich ein kleines Zusatzprogramm schreiben, welches
// das automatisch erledigt:
uses shellapi;
// Bedingung ist, dass die BRCC32.EXE im Path zu finden ist,
// sonst muss der qualifizierte Name angegeben werden,
// z.B.: C:\Programme\Borland\Delphi4\Bin\brcc32.exe
function res_erzeugen(exe,flr: string):integer;
var
tf:tfilestream;
s: string;
begin
s:=' TEST RCDATA '+exe;
tf:=tfilestream.create(flr+' exe.rc',fmcreate);
tf.writebuffer(s[1],length(s));
tf.free;
result:=shellexecute(application.handle,' open',
' brcc32.exe',pchar(flr+' exe.rc'),pchar(flr),sw_hide);
end;
// Aufruf zur Verarbeitung der Beispieldatei "uhr.exe". Die Ressource
// wird im selben Folder wie das aufrufende Programm gespeichert.
procedure TForm1.Button1Click(Sender: TObject);
var NameDerExe: string;
begin
NameDerExe:=' d:\uhr.exe'; // oder 'test.dll' oder..oder..
if res_erzeugen(NameDerExe,extractfilepath(application.exename))<=32
then showmessage(' Fehler aufgetreten');
end;
// Nachdem die Ressource namens "EXE.RES" erzeugt wurde, kann sie in andere
// Programme eingebunden werden.
// Siehe auch AVI-Resourcen mit Mediaplayer abspielen
...
implementation
{$R *.DFM}
{$R EXE.RES}
uses shellapi;
procedure TForm1.Button1Click(Sender: TObject);
var
tr:TResourcestream;
NeueDatei: string;
begin
NeueDatei:=' uhr.exe';
tr:=tresourcestream.create(hinstance,' TEST',RT_RCDATA);
tr.savetofile(NeueDatei);
tr.free;
// falls es sich z.B. um EXE handelt, kann diese dann gleich gestartet werden
shellexecute( handle,' open',pchar(NeueDatei), nil, nil,sw_shownormal);
end;
Bis bald man liest sich
Tino
|
|
Zitat
|