Autor Beitrag
knittel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 71
Erhaltene Danke: 2

Win XP, Win7, openSUSE
Delphi 7
BeitragVerfasst: Mo 24.06.13 17:32 
Hallo allerseits,

Ich programmiere an einem Spiel, das sowohl aus einem Server als auch aus einem Client besteht. Es soll aber möglich sein im Client Einstellungen vorzunehmen und dann den Server mit diesen Parametern zu starten. Nun meine Frage: Wie kann ich beim Server start diese Parameter übergeben und auch diese dann beim server dann auslesen?

Bisher kam ich nur auf die idee, die parameter in einer temporären datei zu speichern und diese dann vom server laden, aber das scheint mir nicht das gelbe vom ei zu sein.

Gibts da was besseres?

Danke schonmal! :)


Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mo 24.06.2013 um 22:36

_________________
"Wir können nicht fliehen!" "Wieso nicht?" "Sie haben mir die Schnürsenkel zusammengebunden!" "Die Schweine."
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: Mo 24.06.13 18:26 
Der Client soll den Server starten und dieser soll die Parameter auswerten, habe ich das richtig verstanden? Ich gehe mal davon aus, dass beides "normale" Windows-Anwendungen sind.
Starten des Servers:
ausblenden Delphi-Quelltext
1:
ShellExecute(EinHandle, 'open', PChar(Pfad_zur_Server_Exe), PChar(Parameter), nil, SW_SHOW {oder eine andere SW_Konstante});					

Auswerten auf Serverseite:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
for i := 1 to ParamCount do
  if ParamStr(i) = 'Blabberblubb' then
    //auf Parameter BlabberBlubb reagieren
  usw.

Für diesen Beitrag haben gedankt: knittel
knittel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 71
Erhaltene Danke: 2

Win XP, Win7, openSUSE
Delphi 7
BeitragVerfasst: Mo 24.06.13 19:00 
Vielen Dank! Das wars was ich gesucht hatte :) Probiers gleich mal aus.
Zitat:
normale Windows-Anwendungen

Sind momentan plattform unabhängige sdl Anwendungen, weis aber sowieso nicht ob ich das bis zum schluss durchhalte.

_________________
"Wir können nicht fliehen!" "Wieso nicht?" "Sie haben mir die Schnürsenkel zusammengebunden!" "Die Schweine."
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Mo 24.06.13 19:09 
alternative 1: Registry.
alternative 2: Datenbank

:-)
Msch

_________________
ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 25.06.13 08:27 
Alternative 3: SHARED MEMORY
JohannPeter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mi 23.04.14 12:03 
Hallo,
Bin neu auf euerer Seite.
Kann ich in Delphi auch externe Programme einbinden.
Habe eine Hauptmaske und von der will ich eigene Progamme starten.

Vielen Dank für die Hilfe.
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Mi 23.04.14 15:00 
:welcome:

Wenn du mit "einbinden" das Starten anderer Programme meinst, dann ist ShellExecute (siehe oben) das richtige für deine Zwecke. Das entspricht in etwa dem Doppelklick auf eine Datei im Explorer, damit kannst du nahezu alles aufmachen (wenn es zickt, dann nehme für den zweiten Parameter einfach NIL ).

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
rushifell
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 306
Erhaltene Danke: 14



BeitragVerfasst: Mi 23.04.14 17:12 
Zum Ausführen von exe-Dateien sollte ShellExecute nicht verwendet werden. Benutze stattdessen lieber CreateProcess. ShellExecute ist z.B. zum Öffnen von Textdateien (*.txt).
JohannPeter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mi 23.04.14 18:19 
Danke für die Antwort.
Möchte mich für meine Anfängerfehler gleich mal entschuldigen, habe bisher immer mit etlichen Formularen gearbeitet.

Hier mein Quelltext:

procedure TfrmMain.mnuAShopClick(Sender: TObject);
begin
Pfad := ExtractFilePath(Application.ExeName);
if Pfad[Length(Pfad)] <> '\' then begin
Pfad := Pfad + '\';
CreateProcess(Pfad + 'Shop.exe'), nil, SW_SHOW {oder eine andere SW_Konstante});
end;
end;

Vielleicht denke ich nur zu umständlich.

LG
Perlsau
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 23.04.14 18:32 
rushifell
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 306
Erhaltene Danke: 14



BeitragVerfasst: Mi 23.04.14 18:36 
Schau mal, hier ist ein Beispiel für CreateProcess:
www.delphipraxis.net...ne-shellexecute.html

Viele Grüße