Autor Beitrag
Delphi2009lover
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 176



BeitragVerfasst: Di 25.08.09 14:20 
Hallo,

ich hab eine sehr komplizierte Frage (eigentlich 2)

1. Wie bekomm ich eine .exe in eine Resourcendatei (wie erstelle ich eine Resourcendatei) und wie bekomm ich die dann in mein Programm

2. Wie kann ich dann aus den Resourcen die Anwendung starten?


Ich bin voll der Noob und hab zwar viel Ahnung in VB.NET aber das hilft mir hier leider nix^^

Also bitte verständlich erklären bitte^^

Danke schon mal im Vorraus
Biarchiv
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 688



BeitragVerfasst: Di 25.08.09 14:25 
Hallo,

wenn du ein Programm braucht der mehrere EXE binden und starten kann, dann teste mal EXE Bundle.
www.webtoolmaster.com

Sonst ist das für einen Anfänger etwas schwer.
Delphi2009lover Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 176



BeitragVerfasst: Di 25.08.09 14:40 
Nein ich will ein Programm schreiben das eine andere *.exe included hat^^ aber sie soll von meinem Programm nur geöffnet werden wenn das Passwort, dass der User eingibt korrekt ist.
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1340
Erhaltene Danke: 120

Win 10
RIO, CE, Lazarus
BeitragVerfasst: Di 25.08.09 15:10 
Mal von der Technik abgesehen und dem Problem das dir Vierenscanner machen dürften, ich würde mir dem komplizierten Umweg über Ressourcen sparen und die Exe einfach an die andere hinten anhängen. Das ist ganz einfach und du kommst auch ohne Probleme an die Daten (Exe) wieder ran.
Als Technik zum ausführen der im RAM liegenden Exe schau mal hier im Forum nach uallCollection. Damit kann man unter anderem in den RAM geladene Anwendungen starten.

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
Delphi2009lover Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 176



BeitragVerfasst: Di 25.08.09 15:34 
das Problem ist, dass wenn ich das Programm im ProgrammOrdner hab dass man dann das Programm auch ohne Passwort laden kann
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Di 25.08.09 15:37 
sinspin meint nicht im programmordner. sondern das du einfach die bytefolge die dein programm zum programm machst, mehr oder weniger mittels Copy and Paste an dein "Passwortprogramm" anfügst. und dann brauchst du es nur mehr "aus" deinem Programm in den Ram laden und mit der uallCollection starten. ;) das programm wird demnach nie als eigene Exe auf der festplatte gespeichert.

Ob da die Virenscanner jedoch mitmachen bleibt mal so dahingestellt.

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Boldar
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1555
Erhaltene Danke: 70

Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
BeitragVerfasst: Di 25.08.09 15:44 
Verschlüssel die andere exe doch einfach mit einem sicherem Verfahren, und lege sie in den Programmordner.
Das dürfte doch das einfachste sein, alles andere wird leicht zu kancken sein.
Delphi2009lover Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 176



BeitragVerfasst: Di 25.08.09 15:50 
wie schon geschrieben ich bin ein Noob...

in VB währ das ja voll einfach gewesen


Delphi

Die exe hätte ich so hinzugefügt: *.exe RC_DATA

aber KA ob des auch so geht^^
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1340
Erhaltene Danke: 120

Win 10
RIO, CE, Lazarus
BeitragVerfasst: Di 25.08.09 16:57 
Die RC_DATA Methode ist aber viel zu umständlich und vorallem unflexibel, du musst jedesmal die Passwort Exe neu erstellen wenn sich die eingebettete ändert.
Beim anhängen brauchst du nur mit einem Ladeprogramm die neue Exe hinten an eine "leere" Version deines Passwortschutzes anhängen.

Das Ladeprogramm funktioniert ganz einfach : (Pseudcode)
- nimm dir zwei variablen von typ TStream. PassFile, EmbededFile
- öffne mit PassFile dein Passwortschutzprogramm (an dem noch nichts hinten dran hängt)
- gehe an das ende der Datei (du willst sie ja nicht überschreiben)
- öffne mit EmbededFile die Datei die du hinten dran haben willst
- schreibe die datei (EmbededFile) nun in PassFile
- schreibe zusätzlich die an das ende von PssFile als integer die größe von EmbededFile (wenn du das nicht machst kann du die datei nicht mehr auslesen und in den RAM laden)
- schließe die beiden Dateien.

In deinem Passwortschutz ist es dann genauso einfach. Da braucht sich dann nur die laufende Exe selber öffnen (nur lesend, sonst wird es nichts), Am Ende von sich selber nachsehen wie viele Bytes gelesen werden sollen, an die richtige Stelle positionieren (die vier byte für den integer ganz am ende nicht vergessen) und die Exe in einen Puffer im Speicher laden.
Den genauen uallCollection Aufruf mus ich erstmal nachschlagen, aber komm erstmal so weit. :wink:

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
thepaine91
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 763
Erhaltene Danke: 27

Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
BeitragVerfasst: Di 25.08.09 17:12 
Warum schreibst du die 2. Exe nicht einfach so das sie vor dem Start ein Parameter erwartet nämlich das passwort? Dann kannst du sie auch einfach in den selben Ordner legen.

Davon abgesehn wird der Viren scanner Alarm schlagen wenn eine Exe in der Exe verpackt ist.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 25.08.09 17:38 
Was den Zugriff auf an die Exe angehängte Daten angeht, da gibts mein Exe Data Stream Projekt:
www.delphi-forum.de/viewtopic.php?t=89659
Damit kann man da einfach wie mit einem normalen TStream zugreifen.

// EDIT:
user profile iconthepaine91 hat folgendes geschrieben Zum zitierten Posting springen:
Warum schreibst du die 2. Exe nicht einfach so das sie vor dem Start ein Parameter erwartet nämlich das passwort? Dann kannst du sie auch einfach in den selben Ordner legen.
Naja, aber man sieht dann ja selbst ohne irgendwelche besonderen Kenntnisse und ab Vista auch ohne Zusatzsoftware sofort das Passwort und kann es selbst übergeben. :lol:
thepaine91
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 763
Erhaltene Danke: 27

Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
BeitragVerfasst: Di 25.08.09 18:20 
auch wieder wahr ...
Delphi2009lover Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 176



BeitragVerfasst: Mi 26.08.09 15:17 
Leute es tut mir echt leid ihr seid echt super aber ich versteh nur Bahnhof^^ ich wollte das Programm für einen Freund schreiben^^
Boldar
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1555
Erhaltene Danke: 70

Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
BeitragVerfasst: Mi 26.08.09 15:25 
Was spricht denn gegen die einfache Lösung, die exe einfach Passwortverschlüsselt mitzuliefern?
Delphi2009lover Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 176



BeitragVerfasst: Do 27.08.09 15:58 
Ich hab mich jetzt mal informiert xD

meine Ressis.rc sieht so aus:

ausblenden Quelltext
1:
MYPROGGI EXEFILE F:/Reso/AlphaB.exe					


dann habe ich Ausgeführt:

BRC32 -r F:/Reso/Ressis.rc

und hatte dann meine Ressis.res


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
// Ressource extrahieren
function ExtractRes(ResType, ResName, ResNewName: string): Boolean;
var
  Res: TResourceStream;
begin
  Result := False;
  Res := TResourceStream.Create(Hinstance, Resname, PChar(ResType));
  try
    Res.SavetoFile(ResNewName);
    Result := True;
  finally
    Res.Free;
  end;
end;


das ist die Funktion, die meine exe aus dem Programm extrahieren sollte

den Code benutze ich zum Aufrufen:


ausblenden Delphi-Quelltext
1:
ExtractRes('EXEFILE', 'MYPROGGI', 'C:/Users/---/Desktop/AlphaB.exe');					


Als Fehler kommt dann : "Resource MYPROGGI konnte nicht gefunden werden"


ist auch mit {$R Ressis.res} eingebunden
Delphi2009lover Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 176



BeitragVerfasst: Do 27.08.09 16:04 
Fehler gefunden
thepaine91
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 763
Erhaltene Danke: 27

Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
BeitragVerfasst: Do 27.08.09 16:05 
OMG Der fehler.... ^^