Variablen austausch zwischen zwei Programmen?
Variablen austausch zwischen zwei Programmen?
Hallo Jungs,
Wenn ich ein Zweites Programm mittels RunProgramm(...) starte, kann ich dann mit den Befehlen ReadProgramString(...) bzw. WriteProgramString(...) Variable austauschen?
Oder gibt es evtl. eine Art SharedMemory wo beide Programme drauf zugreifen können?
Vielen dank schonmal.
MfG
Dieter
Wenn ich ein Zweites Programm mittels RunProgramm(...) starte, kann ich dann mit den Befehlen ReadProgramString(...) bzw. WriteProgramString(...) Variable austauschen?
Oder gibt es evtl. eine Art SharedMemory wo beide Programme drauf zugreifen können?
Vielen dank schonmal.
MfG
Dieter
Ich progge PureBasic weil Jägermeister nen dicken Kopf macht.
Re: Variablen austausch zwischen zwei Programmen?
jetzt rate mal, was an Treffern zurückkommt, wenn man hier im Board nachGreyEnt hat geschrieben:Oder gibt es evtl. eine Art SharedMemory wo beide Programme drauf zugreifen können?
'SharedMemory' sucht

Grüße ... Kiffi
a²+b²=mc²
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
@Kiffi
sorry wuste nicht das SharedMemory ein regulärer PB Begriff ist.
Recht haste ja. Nicht wissen schützt vor strafe nicht.
@Frosch
Es geht um eine Anwendung mit WindowedScreen. Einen Map Editor.
Diese Anwendung braucht beim starten verdächtig lange zum aufbau der Gadgets. Und unter Linux bekomme ich es garnicht hin zu starten.
Da wolte ich mal probieren:
Ein Main-Programm was die ganze arbeit verrichtet. Und ein Screen-Programm was "nur" die Tiles darstellt.
sorry wuste nicht das SharedMemory ein regulärer PB Begriff ist.
Recht haste ja. Nicht wissen schützt vor strafe nicht.

@Frosch
Es geht um eine Anwendung mit WindowedScreen. Einen Map Editor.
Diese Anwendung braucht beim starten verdächtig lange zum aufbau der Gadgets. Und unter Linux bekomme ich es garnicht hin zu starten.
Da wolte ich mal probieren:
Ein Main-Programm was die ganze arbeit verrichtet. Und ein Screen-Programm was "nur" die Tiles darstellt.
Ich progge PureBasic weil Jägermeister nen dicken Kopf macht.
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
kannst du mir das projekt mal zukommen lassen?
... vielleicht find ich ja nen knackpunkt ...
bei deiner problemstellung brauchst du nicht unbedingt in zwei exe trennen,
du kannst das auch in einer Exe in zwei threads machen.
allerdings musst du drauf achten, dass du dann die Fenster-Geschichten in einen thread auslagerst,
(mit nem screen gabs da irgendwelche probleme, bin jetzt aber nicht sicher, welche)
und dass du ALLES was Fenster und Gadgets betrifft im SELBEN thread händelst.
... vielleicht find ich ja nen knackpunkt ...
bei deiner problemstellung brauchst du nicht unbedingt in zwei exe trennen,
du kannst das auch in einer Exe in zwei threads machen.
allerdings musst du drauf achten, dass du dann die Fenster-Geschichten in einen thread auslagerst,
(mit nem screen gabs da irgendwelche probleme, bin jetzt aber nicht sicher, welche)
und dass du ALLES was Fenster und Gadgets betrifft im SELBEN thread händelst.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
wahrscheinlich hat er FlipBuffers() und das ganze zeug zusammen mit den WindowsEvents in einer schleife, denn dann laggen die Gadget wirklich extrem.
es sollte immer so sein :
es sollte immer so sein :
Code: Alles auswählen
Repeat
Repeat
Event = WaitWindowEvent(1)
; ...
Until Not Event
ClearScreen()
; ...
FlipBuffers()
; ...
Until ...
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
vielen dank.
hier erstmal der Link:
http://home.arcor.de/platzke/
Bitte auf MDVMapedit klcken.
@Stargate: Das muß ich mal sofort untersuchen. Mir ist ja so ziemlich alles zuzutrauen.
hier erstmal der Link:
http://home.arcor.de/platzke/
Bitte auf MDVMapedit klcken.
@Stargate: Das muß ich mal sofort untersuchen. Mir ist ja so ziemlich alles zuzutrauen.
Ich progge PureBasic weil Jägermeister nen dicken Kopf macht.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Wenns dann nur für Windows ist, wäre ein Timercallback nochSTARGÅTE hat geschrieben:wahrscheinlich hat er FlipBuffers() und das ganze zeug zusammen mit den WindowsEvents in einer schleife, denn dann laggen die Gadget wirklich extrem.
es sollte immer so sein :Code: Alles auswählen
Repeat Repeat Event = WaitWindowEvent(1) ; ... Until Not Event ClearScreen() ; ... FlipBuffers() ; ... Until ...
zuverlässiger. Dann flippt es auch, wenn zum Beispiel das Fenster
verschoben wird.

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

So hab mir Dein Programm mal angeschaut..
Erstens würde ich das Delay(30) rausmachen und besser
das WindowEvent mit Timeout (siehe Hilfe) verwenden.
Aber das Problem mit dem langsamen Start (Gadgetaufbau) liegt,
wie Stargate schon schrieb, tatsächlich an Deinem FlipBuffers.
Das solltest Du anders lösen..z.B. FlipBuffers nur alle paar ms aufrufen
oder noch besser, Du rufst es nur gezielt auf, und zwar sobald der Screen
geändert wurde, also ein Tile gesetzt wurde o.ä.
Gruß
Udo
Erstens würde ich das Delay(30) rausmachen und besser
das WindowEvent mit Timeout (siehe Hilfe) verwenden.
Aber das Problem mit dem langsamen Start (Gadgetaufbau) liegt,
wie Stargate schon schrieb, tatsächlich an Deinem FlipBuffers.
Das solltest Du anders lösen..z.B. FlipBuffers nur alle paar ms aufrufen
oder noch besser, Du rufst es nur gezielt auf, und zwar sobald der Screen
geändert wurde, also ein Tile gesetzt wurde o.ä.
Gruß
Udo
PureBasic 3.94 ; 4.2 ; 4.3