![]() |
eine belibige datei in ein prog einbinden
servus. ich weiss das man sounds, bitmaps und icons in ein
programm einbinden kann, geht das auch mit einer belibigen datei und wenn kann man sie dann "Extrahieren"? |
Re: eine belibige datei in ein prog einbinden
Ja und ja.
Kuck dir dazu mal meinen Crypter2_7 an: ![]() Willst du eine VCL Lösung zum Extrahieren, kuck dir mal die Klasse TResourceStream in der Hilfe an. |
Re: eine belibige datei in ein prog einbinden
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; |
Re: eine belibige datei in ein prog einbinden
Das läuft so auf deinem System, bzw. auf Systemen mit installierten Delphi. Aber was ist auf anderen Systemen? Willst du da sagen: "Kaufen sie sich bitte Delphi, damit sie mein Programm benutzen können."?
|
Re: eine belibige datei in ein prog einbinden
Zitat:
Nummer 1 ist dafür da um mit der Datei eine RES zu erzeugen. Nummer 2 ist ein Beispiel wie mann die "Datei" dann wieder auslesen kann. |
Re: eine belibige datei in ein prog einbinden
Danke City Lite das hat soweit geklappt doch die *.res erzeugen mit extractfilepath(application.exename) also
Delphi-Quellcode:
geht nich ich musste es mit einen leeren string machen
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;
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var NameDerExe:string; begin NameDerExe:='d:\uhr.exe'; // oder 'test.dll' oder..oder.. if res_erzeugen(NameDerExe,'')<=32 then showmessage('Fehler aufgetreten'); end; |
Re: eine belibige datei in ein prog einbinden
Ähhm... kann man diese datei auch direkt aus dem programm starten (ohne erst aus der resource zu kopieren)
|
Re: eine belibige datei in ein prog einbinden
#Auf NT Systemen wäre es möglich, aber nicht auf Windows 9x Systemen. Aber, glaub mir, das was du für NT SDysteme dazu machen müstest, willst du nicht wirklich machen.
|
Re: eine belibige datei in ein prog einbinden
OK wenn du es sagst dann vertrau ich dir (kanns mir vorstellen)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz