![]() |
Zugriff auf Named Pipe ohne Netzanschluss
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:
Jetzt habe ich einen XP-Rechner, der in keinem Netzwerk hängt und da funktioniert der Zugriff nicht. Mit
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);
Delphi-Quellcode:
bekomme ich die Meldung "Kein Connect zu \\PC01.\pipe\ForcePipe"
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); Sobald ich den Rechner mit einem Netz verbinde klappt es. Was muss ich tun, damit NamedPipe auch bei einem Standalone-Rechner klappt? Danke Gerd |
AW: Zugriff auf Named Pipe ohne Netzanschluss
Warum verwendest du im unteren Codeschnipsel denn '\\PC01.\pipe\ForcePipe' statt wie oben '\\.\pipe\ForcePipe'? Der PC01 DNS Name wird nur verfügbar sein, wenn du im Netzwerk bist. Der einfache Punkt beschreibt immer den lokalen Host.
|
AW: Zugriff auf Named Pipe ohne Netzanschluss
Der Rechner heißt wirklich "PC01." und nicht nur "PC01"?
Aber ansonsten nannte Zacherl ja schon den Grund. Zitat:
Man mag es nicht glauben, aber CallNamedPipe sagt einem, was es für ein Problem gab. Ach ja, was sind send und recv eigentlich? |
AW: Zugriff auf Named Pipe ohne Netzanschluss
Zitat:
![]() Zitat:
Delphi-Quellcode:
if CallNamedPipe(...
... else ShowMessage('Kein Connect zu ' + pipe + ':'#13#10 + SysErrorMessage(GetLastError)); |
AW: Zugriff auf Named Pipe ohne Netzanschluss
Hallo,
vielen Dank für das schnelle Feedback Zitat:
Zitat:
Zitat:
recv den Rückgabewert als String Problem ist für mich gelöst Danke Gerd |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz