Autor |
Beitrag |
knittel
Beiträge: 71
Erhaltene Danke: 2
Win XP, Win7, openSUSE
Delphi 7
|
Verfasst: 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 Narses: 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
Beiträge: 653
Erhaltene Danke: 160
|
Verfasst: 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:
Delphi-Quelltext 1:
| ShellExecute(EinHandle, 'open', PChar(Pfad_zur_Server_Exe), PChar(Parameter), nil, SW_SHOW ); |
Auswerten auf Serverseite:
Delphi-Quelltext 1: 2: 3: 4:
| for i := 1 to ParamCount do if ParamStr(i) = 'Blabberblubb' then usw. |
Für diesen Beitrag haben gedankt: knittel
|
|
knittel
Beiträge: 71
Erhaltene Danke: 2
Win XP, Win7, openSUSE
Delphi 7
|
Verfasst: 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
Beiträge: 1448
Erhaltene Danke: 3
W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
|
Verfasst: 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
|
Verfasst: Di 25.06.13 08:27
Alternative 3: SHARED MEMORY
|
|
JohannPeter
Hält's aus hier
Beiträge: 12
|
Verfasst: 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
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)
|
Verfasst: Mi 23.04.14 15:00
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
Beiträge: 306
Erhaltene Danke: 14
|
Verfasst: 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
|
Verfasst: 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
|
Verfasst: Mi 23.04.14 18:32
|
|
rushifell
Beiträge: 306
Erhaltene Danke: 14
|
Verfasst: Mi 23.04.14 18:36
Schau mal, hier ist ein Beispiel für CreateProcess:
www.delphipraxis.net...ne-shellexecute.html
Viele Grüße
|
|