Zitat von
Dr. Eddison:
Uuhhh! Der Tipp ist schon sehr gut!!!! Gibt's da ne
API-Routine mit der ich das selbst auslesen kann?
Schau Dir mal Deine Windows.pas an. Dort findest Du einige Dinge, die genau in die Richtung gehen.
Hier mal ein Ausschnitt der Funktionen, die auf die Pipes zugreifen:
Delphi-Quellcode:
function CreatePipe(var hReadPipe, hWritePipe: THandle;
lpPipeAttributes: PSecurityAttributes; nSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM CreatePipe}
function ConnectNamedPipe(hNamedPipe: THandle; lpOverlapped: POverlapped): BOOL; stdcall;
{$EXTERNALSYM ConnectNamedPipe}
function DisconnectNamedPipe(hNamedPipe: THandle): BOOL; stdcall;
{$EXTERNALSYM DisconnectNamedPipe}
function SetNamedPipeHandleState(hNamedPipe: THandle; var lpMode: DWORD;
lpMaxCollectionCount, lpCollectDataTimeout: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetNamedPipeHandleState}
function GetNamedPipeInfo(hNamedPipe: THandle; var lpFlags: DWORD;
lpOutBufferSize, lpInBufferSize, lpMaxInstances: Pointer): BOOL; stdcall;
{$EXTERNALSYM GetNamedPipeInfo}
function PeekNamedPipe(hNamedPipe: THandle; lpBuffer: Pointer; nBufferSize: DWORD;
lpBytesRead, lpTotalBytesAvail, lpBytesLeftThisMessage: Pointer): BOOL; stdcall;
{$EXTERNALSYM PeekNamedPipe}
function TransactNamedPipe(hNamedPipe: THandle; lpInBuffer: Pointer; nInBufferSize: DWORD;
lpOutBuffer: Pointer; nOutBufferSize: DWORD; var lpBytesRead: DWORD;
lpOverlapped: POverlapped): BOOL; stdcall;
{$EXTERNALSYM TransactNamedPipe}
Gruss
EL