Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Senden eines Streams an eine andere Anwendung
rushifell - Fr 13.05.11 23:47
Titel: Senden eines Streams an eine andere Anwendung
Hallo,
ich habe zwei Anwendungen programmiert. Nun möchte ich die zweite Anwendung aus der ersten heraus mit Hilfe von ShellExecute starten und beim Start an diese zweite Anwendung einen Stream senden. Der Stream hat etwa eine Größe von 1000 Bytes. Kann ich den Stream einfach als Parameter übergeben?
Zur Erläuterung: Die erste Anwendung ist ein Level-Editor für ein Spiel. Zum Testen wird ein Button gedrückt und per ShellExecute die zweite Anwendung, das Spiel, gestartet. Als Parameter werden die Daten des Levels übergeben. Bisher habe ich den Umweg über das Speichern des Streams in einer temporären Datei gewählt. Der direkte Weg ist aber vermutlich besser.
Gruß
HenryHux - Sa 14.05.11 00:19
Für mich hört sich Zwischenspeichern dann doch besser an.
Dann sind bei Fehlern die Daten nicht verloren und der User kann die evtl nochmal editieren.
lg
elundril - Sa 14.05.11 00:52
Also ich kenn auch nur das Zwischenspeichern, was mMn auch die beste Lösung ist. Einige Leveleditoren verlangen sogar das man die Map vorher selbst speichert bevor man sie testen kann (Tomb Raider III hatte soeinen Leveleditor afair).
lg elundril
jaenicke - Sa 14.05.11 05:53
Ich würde eine MMF benutzen. Dann kannst du deren Namen einfach an die gestartete Anwendung übergeben.
Eine Alternative wäre eine temporäre Datei, die sich automatisch löscht, wenn sie nicht mehr gebraucht wird:
http://www.delphi-library.de/viewtopic.php?t=89603
Ich denke aber auch, dass es vielleicht sinnvoller ist, die Daten in die echten Datendateien zu speichern. Dann können diese bei einem Programmabsturz auch nicht verloren gehen.
rushifell - Sa 14.05.11 09:12
Danke für Eure Antworten :-)
MMF ist genau das, was ich gesucht habe. Nach Euren Antworten werde ich aber vermutlich doch bei meiner ursprünglichen Variante mit dem Zwischenspeichern bleiben. Wenn ich ein neues Levelset erstelle, werde ich sowieso immer vor dem Testen speichern. Mal eben zum schnell Testen, bietet sich für mich die Variante mit der temporären Datei oder dem MMF an.
Viele Grüße
jaenicke - Sa 14.05.11 09:27
Wenn das eine temporäre Datei ist, die nach einem Absturz eh nicht gelesen werden kann, bringt das nix. Dann kannst du auch die MMF nehmen.
rushifell - Sa 14.05.11 10:01
Nee, ist ne normale Levelset-Datei, die nicht gelöscht, sondern einfach immer wieder überschrieben wird. Je nach Schreibrechten wird diese Datei einfach in einem Unterverzeichnis oder den "Gemeinsamen Dateien" gespeichert. Im Grunde könnte man sie zur Datenrettung neu laden. Aber ehrlichgesagt, wer nicht ständig speichert ist im Grunde selbst schuld. Das muss ich beim Programmieren schließlich auch und andere Programme verzeihen mit das "nicht speichern" auch nicht. Ich denke, ich versuch's doch mal mit MMF. Bin im Moment etwas hin- und hergerissen. Ein Datenverlust wäre zwar ärgerlich, aber bei meinem kleinen Spiel auch nicht gerade gravierend.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!