exe2 in exe1 speichern und exe2 starten

Anfängerfragen zum Programmieren mit PureBasic.
TomTom
Beiträge: 130
Registriert: 18.10.2006 18:47

exe2 in exe1 speichern und exe2 starten

Beitrag 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:
Pure Basic 4.0
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Es ist möglich, aber es ist recht unnütz, ausser für Viren- und sonstiges
Progger.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
125
Beiträge: 1322
Registriert: 19.09.2004 16:52
Wohnort: Neu Wulmstorf (Hamburg)
Kontaktdaten:

Beitrag 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 :)
Bild
BildDas ist Tux. Kopiere Tux in deine Signatur und hilf ihm so auf seinem Weg zur Weltherrschaft.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
TomTom
Beiträge: 130
Registriert: 18.10.2006 18:47

Beitrag 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
Pure Basic 4.0
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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?
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
TomTom
Beiträge: 130
Registriert: 18.10.2006 18:47

Beitrag 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...
Pure Basic 4.0
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Antworten