Hallo zusammen.
ich verwende seit längerem Gerätetreibe z.B. für Kraftanzeigen, über die ich per Named Pipe von einem anderen Programm zugreife. Beide Programme laufen i.d.R. auf demselben Rechner. Das funktioniert unter XP und Win7 so weit auch einwandfrei. Das anlegen erfolgt über
Delphi-Quellcode:
PipeName :PChar = '\\.\pipe\ForcePipe'+ #0 ;
fPipe := CreateNamedPipe(PipeName, PIPE_ACCESS_DUPLEX,
PIPE_TYPE_Message or PIPE_READMODE_Byte or PIPE_WAIT,
PIPE_UNLIMITED_INSTANCES, 225, 255, NMPWAIT_USE_DEFAULT_WAIT, nil);
if (fPipe <> INVALID_HANDLE_VALUE) then
//Warten auf Clientzugriff
bConnected := ConnectNamedPipe(FPipe, nil);
Jetzt habe ich einen XP-Rechner, der in keinem Netzwerk hängt und da funktioniert der Zugriff nicht. Mit
Delphi-Quellcode:
pipe := '\\PC01.\pipe\ForcePipe';
send := 'GETFORCE';
if CallNamedPipe(PChar(pipe),
@send[1], // address of write buffer
length(send), // size, in bytes, of write buffer
@recv[1], // address of read buffer
sizeof(recv), // size, in bytes, of read buffer
re, // address of number of bytes read
3000 // time-out time, in milliseconds
) then
begin
d := re;
panel3.caption := recv;
end
else
ShowMessage('Kein Connect zu ' + pipe);
bekomme ich die Meldung "Kein Connect zu \\PC01.\pipe\ForcePipe"
Sobald ich den Rechner mit einem Netz verbinde klappt es.
Was muss ich tun, damit NamedPipe auch bei einem Standalone-Rechner klappt?
Danke
Gerd