Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Exe aus Ressoruce extrahieren (https://www.delphipraxis.net/44826-exe-aus-ressoruce-extrahieren.html)

Aljoscha 25. Apr 2005 14:14


Exe aus Ressoruce extrahieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi.
Ich versuche verzweifelt eine Ressource (exe Datei) zu extrahieren.
Ist ein simples Testprogramm das keine andere Funktion hat.
Ich habe es angehängt, weil es einfach nicht klappen will.
Die Ressource kann NIE gefunden werden, egal was ich angebe.

Delphi-Quellcode:
Var
 MeinFileStream: TFileStream;
 RS: TResourceStream;
begin
SaveDialog1.Execute;

 RS := TResourceStream.Create(
   Form1.Handle,    // Handle deiner Anwendung/DLL
   '1', // Name der Ressource
   RT_RCDATA);   // in diesem Fall ist es ein RCDATA resource type

 MeinFileStream:=TFileStream.Create(SaveDialog1.FileName, fmCreate);
 MeinFileStream.CopyFrom(RS, RS.Size);
 MeinFileStream.Free;
Die Ressource 1 kann nie gefunden werden.
Wäre nett wenn jemand mein Beispiel im Anhang korrigieren könnte.

thx 4 help

3_of_8 25. Apr 2005 14:18

Re: Exe aus Ressoruce extrahieren
 
Ich kenn mich damit nicht so aus, aber vielleicht:

Application.Handle

statt

Form1.Handle

?

teebee 25. Apr 2005 14:20

Re: Exe aus Ressoruce extrahieren
 
'hInstance' statt Form.Handle könnte funktionieren,

Gruß, teebee

Aljoscha 25. Apr 2005 19:20

Re: Exe aus Ressoruce extrahieren
 
Nein beides schon probiert :(
Scheint nicht am Quellcode zu liegen.
Wäre nett wenn jemand sich den Anhang mal angucken könnte :)
thx

Jens Schumann 25. Apr 2005 19:27

Re: Exe aus Ressoruce extrahieren
 
Hallo,
probier es mal damit.
Delphi-Quellcode:
...
var
  Path : String;
  aRes : TResourceStream;
begin
  Path:=ExtractFilePath(Application.ExeName);
  Path:=IncludeTrailingBackSlash(Path);
  aRes:=TResourceStream.Create(hInstance,'MYEXE','EXEDATA');
  Try
    aRes.SaveToFile(Path+'test.exe');
    ShellExecute(Handle,'open',PChar(Path+'test.exe'),Nil,Nil,SW_SHOW);
  Finally
    aRes.Free;
    end;
end;
Code ist getestet und funktioniert

Hier die Resourcendatei
Code:
MYEXE EXEDATA "test.exe"

Aljoscha 25. Apr 2005 19:32

Re: Exe aus Ressoruce extrahieren
 
WUNDERBAR!
ICh hatte schon so gut wie aufgegeben :)
Vielen Dank dir!

ferby 22. Mai 2005 17:40

Re: Exe aus Ressoruce extrahieren
 
Hallo,

ich habe es bis jetzt auch nicht zusammengebracht eine datei aus dem res der exe zu extrahieren.

ich habe den Quellcode ausprobiert, bei mir kommen die fehler:

[Warnung] Unit1.pas(33): Symbol 'IncludeTrailingBackslash' ist plattformspezifisch
[Fehler] Unit1.pas(37): Undefinierter Bezeichner: 'ShellExecute'
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden



kann mir da wer weiter helfen?

MathiasSimmack 22. Mai 2005 17:43

Re: Exe aus Ressoruce extrahieren
 
Zitat:

Zitat von ferby
[Warnung] Unit1.pas(33): Symbol 'IncludeTrailingBackslash' ist plattformspezifisch

Liegt nur an deinem Delphi. Kannst du ignorieren, wenn dein Programm eine Win32-Exe bleiben soll. Die Warnung ist so ein "Vorgeschmack" auf .NET. ;)

Zitat:

[Fehler] Unit1.pas(37): Undefinierter Bezeichner: 'ShellExecute'
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden
Delphi-Quellcode:
uses
  ShellAPI;

mirage228 22. Mai 2005 17:44

Re: Exe aus Ressoruce extrahieren
 
Zitat:

Zitat von MathiasSimmack
Zitat:

Zitat von ferby
[Warnung] Unit1.pas(33): Symbol 'IncludeTrailingBackslash' ist plattformspezifisch

Liegt nur an deinem Delphi. Kannst du ignorieren, wenn dein Programm eine Win32-Exe bleiben soll. Die Warnung ist so ein "Vorgeschmack" auf .NET. ;)

In diesem Fall hat die Warnung nichts mit .NET zu tun, sondern mit der Linux Kompatibilität (Sprichwort: CLX) der VCL/RTL ab Delphi 6.
Edit: Es hindert aber Niemand einen daran, die Methode Delphi-Referenz durchsuchenIncludeTrailingPathDelimiter zu verwenden, die dann auch mit der CLX und Linux kompatibel ist. ;)

mfG
mirage228

Jens Schumann 22. Mai 2005 17:46

Re: Exe aus Ressoruce extrahieren
 
Zitat:

Zitat von ferby
Hallo,

ich habe es bis jetzt auch nicht zusammengebracht eine datei aus dem res der exe zu extrahieren.

ich habe den Quellcode ausprobiert, bei mir kommen die fehler:

[Warnung] Unit1.pas(33): Symbol 'IncludeTrailingBackslash' ist plattformspezifisch
[Fehler] Unit1.pas(37): Undefinierter Bezeichner: 'ShellExecute'
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden



kann mir da wer weiter helfen?

Ich verwende immer noch D5. Da ist IncludeTrailingBackslash noch Ok. Ab D6 steht in der OH, dass man
IncludeTrailingPathDelimiter verwenden sollte.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:23 Uhr.
Seite 1 von 2  1 2      

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