2 Task sollen Daten in grösserem Ramen austauschen können.

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
tft
Beiträge: 650
Registriert: 08.09.2004 20:18
Computerausstattung: GFX 3060 Ti , i7 12700F , 32 GB Ram , 900 GB SSD , TV
Wohnort: Dachsen
Kontaktdaten:

2 Task sollen Daten in grösserem Ramen austauschen können.

Beitrag von tft »

Hi...

ich suche eine Möglichkeit, zwei separate Task die mir RunExe gestartet wurde, einen grösseren Datenblock miteinander auszutauschen. Das war unter Win 98 kein problem. Aber seit XP funktionieren die einfachen methoden scheinbar nicht mer. Weis einer wie das aufgebaut sein muss. Damit das Funktioniert. In hinblick auf die MultiProcessor Umgebung die ja auf uns zu kommt. Wäre eine Brauchbare lösung schon sinnvoll.

MfG TFT
TFT seid 1989 , Turgut Frank Temucin , CH-Dachsen/DE-Berlin/TR-Antalya
Mein Projekt (Driving School Evergarden)
Codes bei (GitHub) Videos von (YouTube)
Treffen via Discord: Einladung

PB 6.10 | W11 | i7 12700F | 32 GB Ram | RTX 3060 Ti | 60 Herz -TV FullHD
ARDUINO Freak | Sprecher | Game Dev. | Geschichten Erzähler :-)
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Es wurden schon unzählige Threads dazu gepostet (Suchfunktion!!!).

Die "bekanntesten" Ideen:
  • Network-Befehle (Verbindung zum eigenen COmputer (127.0.0.1))
  • Über Dateien
  • DDE
  • Zwischenablage (Clipboard)
  • ProgramParameter()
  • Envirenment-Variablen (siehe Process-Lib)
  • eine Connection aufbauen, wenn RunProgram() verwendet wird (siehe Process-Lib)
Wobei ich persönlich 1+3 bevorzuge, von 3 aber keine Ahnung habe... :lol:
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

GlobalMessages
GlobalBuffer

kommt noch dazu

ClipBoard ist imho die schnellste, sauberste lösung
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

> ClipBoard ist imho die schnellste, sauberste lösung
Wenn mir einer mit soetwas kommt, kann der was erleben! :twisted:
Ich opfere doch nicht mein ClipBoard, wärhend ich/nur damit ich mit diesem Programm arbeiten kann?

»»» Du kennst doch meinen Spruch, wenn mir ein Programm "querkommt", oder? :lol:


An sich hast du aber Recht, die von dir genannten Möglichkeiten habe ich vergessen aufzuzählen (habe die Aufzählung aus einem anderen Posting von mir kopiert).
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
stbi
Beiträge: 685
Registriert: 31.08.2004 15:39
Wohnort: Cleverly Hills

Beitrag von stbi »

Die bunte Welt der Interprozesskommunikation ... http://msdn2.microsoft.com/en-us/library/aa365574.aspx

Schau Dir mal besonders die Named Pipes an. Das Handling ist wie bei Dateien mit denselben Read/Write-befehlen. Funktioniert sogar, wenn die Prozesse auf separaten Rechnern im Netz laufen.
PB 4.02 XP Pro SP2 "Der Code ist willig, aber der Prozessor ist schwach."

Es gibt keine Vista-Witze. Es ist alles wahr!
Benutzeravatar
tft
Beiträge: 650
Registriert: 08.09.2004 20:18
Computerausstattung: GFX 3060 Ti , i7 12700F , 32 GB Ram , 900 GB SSD , TV
Wohnort: Dachsen
Kontaktdaten:

Beitrag von tft »

Hallo.....

danke für die Infos ... besonders letzteres ist genau was ich gesucht habe. Da mein Englisch noch schlechter ist wie meine Deutsche rechtschreibung. Komme ich nicht auf die Idee auf Englische sachen zu suche. Die Seite ist aber genial informativ.......
TFT seid 1989 , Turgut Frank Temucin , CH-Dachsen/DE-Berlin/TR-Antalya
Mein Projekt (Driving School Evergarden)
Codes bei (GitHub) Videos von (YouTube)
Treffen via Discord: Einladung

PB 6.10 | W11 | i7 12700F | 32 GB Ram | RTX 3060 Ti | 60 Herz -TV FullHD
ARDUINO Freak | Sprecher | Game Dev. | Geschichten Erzähler :-)
Benutzeravatar
stbi
Beiträge: 685
Registriert: 31.08.2004 15:39
Wohnort: Cleverly Hills

Beitrag von stbi »

So, hab mal kurz was zusammengebruzzelt. Das ist nicht der Weisdheit letzter Schluss, sondern nur ein kleiner Test der Machbarkeit. Ohne sich mit NamedPipes genauer zu beschäftigen, wird keiner weiter kommen. Manchmal scheint es mir auch, dass PB da in die Suppe spuckt bzw. dass API-Calls notwendig sind, gerade beim Schreiben bzw. Lesen der Pipe. Aber das ist nur eine Behauptung, hab ich nicht weiter ausgetestet.
Viel Spaß beim Weiterentwickeln ... :mrgreen:

Code: Alles auswählen

; Beispielprogramm für Named Pipes (very quick, very dirty ...)
; stbi 2007

#BUFSIZE = 1024 
PipeName.s = "\\.\pipe\pbsamplepipe"

; Named Pipe einrichten
hPipe.l = CreateNamedPipe_(PipeName, #PIPE_ACCESS_DUPLEX, #PIPE_TYPE_BYTE | #PIPE_READMODE_BYTE | #PIPE_NOWAIT, #PIPE_UNLIMITED_INSTANCES, #BUFSIZE, #BUFSIZE, 0, #Null) 
If hPipe = 0
  Debug "Fehler beim Erstellen der Named Pipe" : End 
EndIf 

; zur Named Pipe verbinden
ConnectNamedPipe_(hPipe, 0)

; in die Pipe schreiben
handle.l = OpenFile(#PB_Any, PipeName)
WriteString(handle, "Hello Pipe!")
CloseFile(handle)

; einen Blick in die Pipe werfen
BytesAvailable.l = 0
PeekNamedPipe_(hPipe, 0, 0, 0, @BytesAvailable, 0)

; aus der Pipe lesen
Buffer.s = Space(BytesAvailable) 
BytesRead.l = 0 
ReadFile_(hPipe, @Buffer, BytesAvailable, @BytesRead, 0)
Debug Buffer

; aufräumen
DisconnectNamedPipe_(hPipe)
CloseHandle_(hPipe)

End
PB 4.02 XP Pro SP2 "Der Code ist willig, aber der Prozessor ist schwach."

Es gibt keine Vista-Witze. Es ist alles wahr!
Antworten