ich habe in der Hilfe gelesen, das man mit Runprogram() auch Informationen austauschen kann.
Ich habe alles versucht aber da tut sich nix

Kann mir wer 2 Programme schreiben die nur 1 string rübernehmen? damit ich sehe wie es geht?
thx @ all!!
bye
Code: Alles auswählen
; test.exe
Text.s = GetEnvironmentVariable("MyTest")
MessageRequester("", Text)
Code: Alles auswählen
SetEnvironmentVariable("MyTest", "PureBasic Rulez")
RunProgram("test.exe")
Nein, die Environmentvariable muß vor RunProgram gesetzt sein und wird anBrügge hat geschrieben:danke für die schnelle antwort!!
kann das eine programm nur senden und das andere nur empfangen?? oder geht beides?
Unter Windows mit SendMessage, wenn du eine Fensteranwendung machst. Schau mal in der MSDN, da steht was zu Userdefinierten Messages.Brügge hat geschrieben:och nee
gibt es nicht eine einfachere möglichkeit? also ziel ist:
das erste programm sendet sehr oft die variable "Prog1"
das 2te programm sendet sehr oft die variable "prog2"
also nicht nur ein mal sondern jede sekunde.
ist das nicht anders möglich?
Code: Alles auswählen
Structure test
Prog1.s{255}
Prog2.s{255}
EndStructure
Global *Mem.test = PBOSL_AllocateMemoryGlobal("MeinGemeinsamerSpeicher", SizeOf(test))
Procedure TimeProc(hWnd.l, uMsg.l, idEvent.l, dwTime.l)
Static MyVar.s
If idEvent = 1
If MyVar <> *Mem\Prog1
MyVar = *Mem\Prog1
Debug MyVar
EndIf
EndIf
EndProcedure
If OpenWindow(0, #PB_Ignore, #PB_Ignore, 200, 200, "")
SetTimer_(WindowID(0), 1, 1000, @TimeProc()); alle sekunde auf änderungen Testen
If CreateGadgetList(WindowID(0))
ButtonGadget(0, 10, 10, 80, 30, "Random")
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
If EventGadget() = 0
*Mem\Prog1 = "Test " + Str(Random(1000))
EndIf
EndSelect
ForEver
EndIf
EndIf
PBOSL_FreeMemoryGlobal(*Mem)