| Autor | Beitrag | 
| knittel 
          Beiträge: 71
 Erhaltene Danke: 2
 
 Win XP, Win7, openSUSE
 Delphi 7
 
 | 
Verfasst: Mo 24.06.13 16: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 17: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 doif 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 18: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 18: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 07:27 
 
Alternative 3: SHARED MEMORY | 
|  | 
| JohannPeter Hält's aus hier
 Beiträge: 12
 
 
 
 
 | 
Verfasst: Mi 23.04.14 11: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 14: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 16: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 17: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 17:32 
 | 
|  | 
| rushifell 
          Beiträge: 306
 Erhaltene Danke: 14
 
 
 
 
 | 
Verfasst: Mi 23.04.14 17:36 
 
Schau mal, hier ist ein Beispiel für CreateProcess:
www.delphipraxis.net...ne-shellexecute.html Viele Grüße | 
|  |