Seite 1 von 2

exe2 in exe1 speichern und exe2 starten

Verfasst: 25.04.2007 16:24
von TomTom
hiho

also ich habe 2 exe dateien e1.exe und e2.exe.
in e1.exe soll e2.exe eingebunden werden also das man nur e1.exe sieht.
wenn man e1.exe startet dann soll e1.exe auch e2.exe starten.

wenn e1.exe die e2.exe startet soll es jedoch die e2.exe NICHT
erst raushohlen und dann starten sondern direkt in der anderen (e1.exe)
starten.


ist das möglich??

wenn ja wie??


PS: Ich hoffe ich habe keinen verwirrt! :freak:

Verfasst: 25.04.2007 16:35
von ts-soft
Es ist möglich, aber es ist recht unnütz, ausser für Viren- und sonstiges
Progger.

Verfasst: 25.04.2007 16:39
von AND51
Ich glaube, es geht nur, wenn du exe2 aus exe1 "rausholst", also in eine temporäre Datei zwischenspeicherst.

ODER:

Wenn es die Situation zulässt, kompilierst du exe2 nicht als EXE, sondern nimmst den Sourcecode von exe2 und steckst in exe1 als Thread rein.
Bei bedarf dann einfach den Thread aufrufen, dann laufen exe1 und "exe2" auch parallel. Ist nur nicht im Taskamanager zu sehen.

Verfasst: 25.04.2007 16:41
von 125
http://www.purebasic.fr/german/viewtopi ... usf%FChren
Lars hat geschrieben:Das ganze in den Speicher zu packen und dort auszuführen geht mit [c]CallFunctionFast()[/c].

Das Argerliche ist nur, dass in Zukunft (und, wenn ich mich recht
erinnere, bei XP SP2 schon, "normaler" Speicher nicht ausführbar ist, da
muss ein bestimmtes Flag gesetzt sein, damit das geht. Ist also nicht so
einfach :)

Verfasst: 25.04.2007 16:41
von Kiffi
AND51 hat geschrieben:Ich glaube, es geht nur, wenn du exe2 aus exe1 "rausholst", also in eine temporäre Datei zwischenspeicherst.
nee, geht auch anders. Siehe Posting von Thomas.

Grüße ... Kiffi

Verfasst: 25.04.2007 16:45
von TomTom
ne für viren brauch ich das nicht ^^

also:
ich habe mit der 3DEngine ein spiel gebastelt und will das online spielen...
das problem ist jetzt beim, das ich einmal im ganzen durchlauf auch die Daten der anderen spieler erhalten muss.... und wenn ich 10 spieler habe, und nur 40 frames die sekunde dann bewegen sich bei mir auf den bildschirm alle figuren nur 4 mal in der Sekunde. Für nen Shooter ist das ********. Jetzt habe ich mir ein 2tes programm geschrieben, was 200 mal in der sekunde durchläuft und 30 mal pro sekunde meine position weiterschickt. und 300 mal in der überprüft, ob vom server informationen gekommen sind. (das tuts auch).

jetzt habe ich allerdings viele dateien und will alles in einer haben.(bilder, sounds, settings und die 2te exe (meine netzwerk.exe)), damit das übersichtlich ist. denn ich will später mehrere spiele machen, die einfach mit einem menü verbunden sind und wo alle exedateien ineinander verknüpft sind...

und dafür möchte ich gerne wissen wie ich eine exe starten kann, die in einer anderen exe drinne ist.

MFG TomTom

Verfasst: 25.04.2007 16:48
von Kaeru Gaman
dafür brauchst du keine mehreren exe.
du verteilst die programmteile auf threads, damit kannst du die gleiche wirkung erreichen.

...ist allerdings auch nicht einfach, das sauber hinzubekommen,
aber auch nicht wesentlich schwieriger als mit zwei exen runzudaddeln...

Verfasst: 25.04.2007 16:50
von AND51
125 hat geschrieben:
Lars hat geschrieben:Das ganze in den Speicher zu packen und dort auszuführen geht mit [c]CallFunctionFast()[/c].

Das Argerliche ist nur, dass in Zukunft (und, wenn ich mich recht
erinnere, bei XP SP2 schon, "normaler" Speicher nicht ausführbar ist, da
muss ein bestimmtes Flag gesetzt sein, damit das geht. Ist also nicht so
einfach :)
Geil!
Und was ist das für ein Flag? Und wie mche ich das?

Code: Alles auswählen

DataSection
   label: IncludeBinary "programm.exe"
EndDataSection

CallFunctionFast(?label)
[code]So?

Verfasst: 25.04.2007 16:52
von TomTom
threads?

dafür brauche ich doch proceduren oder? da bekomme ich dann doch nur eine variable zurück muss allerdings ein ganzes feld rausholen...

außerdem wenn ich mehrere Spiele mit dem Menü starte kann ich nicht jedes spiel in einen thread packen...

Verfasst: 25.04.2007 16:54
von AND51
Bei Threads bekommst du nix zurück, da kannst du beruhigt sein. Auch wenn ein Thread in Wirklich keit eine Prozedur ist, die parallel zum Rest des Programms läuft. Du musst schon mit sowas wie globalen Variablen arbeite, aber anders würdest du es vermutlich bei zwei EXEn ja auch nicht machen.