Seite 1 von 2

Werte an ein anderes Programm weitergeben

Verfasst: 25.11.2006 22:17
von sobi
Hallo,
ist es möglich, variablen an ein anderes Programm weiter zu geben, dass mit runprogram() gestartet wird?
LG - Simon

Verfasst: 25.11.2006 22:17
von a14xerus
als parameter senden und mit progamparameter () empfangen

Verfasst: 25.11.2006 22:37
von sobi
a14xerus hat geschrieben:als parameter senden und mit progamparameter () empfangen
hmmm und wie lege ich einen Parameter fest?
wenn ich

Code: Alles auswählen

RunProgram("program.exe", "parameter")
verwende klappt das nicht...

Verfasst: 25.11.2006 22:44
von a14xerus

Code: Alles auswählen

;Parameter - By Alexander N for PB 4.0
;#########################################
;für 1 parameter:
;prog 1: (name egal)
RunProgram("prog.exe","test","")

;#########################################
;prog 2: (prog.exe / gleiches verzeichnis)
Debug ProgramParameter()

;#########################################
;#########################################
;#########################################

;für mehrere Parameter:
;prog 1: (name egal)
para.s = ""
para + Chr(34) + "parameter 1"+Chr(34) + " "
para + Chr(34) + "parameter 2"+Chr(34) + " "
para + Chr(34) + "parameter 3"+Chr(34) + " "
RunProgram("prog.exe",para,"")

;#########################################
;prog 2: (prog.exe / gleiches verzeichnis)
anzahl = CountProgramParameters()
i = 0
Repeat
  Debug ProgramParameter()
  i + 1
Until i >= anzahl
;#########################################
/edit: nicht getestet, müsste aber klappen

Verfasst: 26.11.2006 00:30
von AND51
Du könntest ruhig ersteinmal selber in die Hilfe gucken, dann siehst du, dass du ab PB 4 auch Umgebngsvariablen an dein Programm weitergeben kannst!

SetEnvironmentVariable() (glaub ich). Schau einfach mal in die process-Library.

Verfasst: 26.11.2006 03:22
von rolaf
Möglichkeit 2, die zu übergebenden Daten in eine INI-Datei oder in der Zwischenablage speichern und vom anderen Programm wieder abholen.

Verfasst: 26.11.2006 03:54
von AND51
Das fällt dann aber schon in die Kategorie "2 Programme kommunizieren". Dazu gibt es schon recihlich Threds (man könnte z. B. die Netzwerk Befehele benutzen).

zwischenablage? Das wird dann aber die meisten benutzer sehr verärgern, wenn sie wegen einem dummen programm ihre zwisschenablage nicht benutzen könnten.

Verfasst: 26.11.2006 13:24
von sobi
[quote="AND51"]Du könntest ruhig ersteinmal selber in die Hilfe gucken, dann siehst du, dass du ab PB 4 auch Umgebngsvariablen an dein Programm weitergeben kannst![quote]

Einfach so davon ausgehen, dass ich nicht in die Hilfe gekuckt habe, entspricht nicht der Wahrheit... :) Manchmal kommt man einfach, trotz Hilfe nicht weiter. - Und da bin ich sehr froh darüber, dass es ein Forum gibt, wo fähige Leute (wie zb. in diesem Fall a14xerus sind, die einem weiter helfen) - Ist ja auch der Sinn und Zweck eines Forums... :)

Deswegen hier noch mal ausdrücklich vielen Dank an a14xerus, mein Fehler war, dass ich die Verzeichnis nicht festgelegt habe... :))

Über INI - Datein habe auch nachgedacht, fand das aber nicht ganz so "elegant" :)
Schönen Sonntag und danke für die Hilfe,
Simon

Verfasst: 27.11.2006 10:33
von super_castle
man könnte z. B. die Netzwerk Befehele benutzen
das interessiert mich einmal. ich kenne mich mit der netzwerkprogrammierung überhaupt nicht aus.

wäre nett, wenn du mal 2 einfache beispiele schreiben könntest, die einfach einen wert von einem laufenden programm an das andere übergeben mit den vorhandenen netzwerkbefehlen.

danke.

mfg

Verfasst: 27.11.2006 14:54
von AND51
super_castle hat geschrieben:
man könnte z. B. die Netzwerk Befehele benutzen
das interessiert mich einmal. ich kenne mich mit der netzwerkprogrammierung überhaupt nicht aus.

wäre nett, wenn du mal 2 einfache beispiele schreiben könntest, die einfach einen wert von einem laufenden programm an das andere übergeben mit den vorhandenen netzwerkbefehlen.
En Beispiel befindet sich bereits auf deinem PC!

Schau dir bitte mal die Beispieldateien im Kapitel "Network" an. beim Server sieht du die Zeile ReceiveNetworkData(). Dies ist der Kernbefehl zum Empfangen von Daten. Empfangene Daten müssen in einen MemorySpeicher oder eine Variable mit pointer eingelesen werden.

Beim Client siehst du SendNetworkString (die Anfänger-freundliche-Variante) oder SendNetworkData() (die Profi-Variante). Diese Befehle dient natürlich zum Sneden von Daten.

Bevor du Daten zwischen zwei Programmen senden kannst, müssen beide Programme erfolgreich InitNetwork() ausführen. Eines der Programme öffnet dabei einen Server (CreateNetworkServer()), das andere Programm muss sich zu dem Server verbinden (OpenNetworkCOnnection()). befinden sich beide Programme (wie in diesem Thread verlangt wird) auf demselben computer, reicht die IP 127.0.0.1. Man kann aber auch Ip Adressen anderer Server im LAN angeben (sofern auf dem dortigen Computer ein Server offen ist) oder sogar einen Computer anvisieren, der überrs Internet bereit steht!

Bitte schau dir die Beispiele ersteinmal an, parallel dazu die aufgeschlagene Hilfedatei. Du wirst feststellen, dass das Kapitel Network gar nicht so schwierig ist! Ich persönlich finde die Netzwerk-befehle einfacherer als z. B. alle Sprite oder 3D Befehle.

Tipp: Wenn man es geschickt anstellt und z. B. Schleifen benutzt kann man auch ganze Arrays oder LinkedLists versenden. Ich bin mir grad nicht sicher, aber da man ja Pointer angeben muss, wo die Daten dann ausgelesen werden, müsste es sogar ohne Schleifen möglich sein, ganze Arrays zu verschicken.