Da Du die NamedPipe gerade erst erstellt hast, biste auch noch verbunden, somit ist ConnectNamedPipe überflüssig.
Es kann aber nicht schaden, es vorsichtshalber auszuführen!
Ansonsten habe ich das Beispiel mal in Hinsicht auf 64-Bit und Unicode erweitert, weil sonst kannst Du es spätestens ab
PB 5.50 nicht mehr nutzen
Code:
EnableExplicit
; Beispielprogramm für Named Pipes (very quick, very dirty ...)
; stbi 2007
#BUFSIZE = 1024
Define PipeName.s = "\\.\pipe\pbsamplepipe"
; Named Pipe einrichten
Define hPipe.i = 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
Define handle.i = OpenFile(#PB_Any, PipeName)
WriteString(handle, "Hello Pipe!", #PB_Ascii)
CloseFile(handle)
; einen Blick in die Pipe werfen
Define BytesAvailable.l = 0
PeekNamedPipe_(hPipe, 0, 0, 0, @BytesAvailable, 0)
; aus der Pipe lesen
Define Buffer.s = Space(BytesAvailable)
Define BytesRead.l = 0
ReadFile_(hPipe, @Buffer, BytesAvailable, @BytesRead, 0)
Debug PeekS(@Buffer, -1, #PB_Ascii)
; aufräumen
DisconnectNamedPipe_(hPipe)
CloseHandle_(hPipe)
End
Gruß
Thomas