我不确定我只是没有看到它,还是什么?我需要知道通过命名管道从NamedPipeServerStream
. 这可能吗?
与此同时,我想出了这个功能:
[DllImport("kernel32.dll", SetLastError = true)]
internal static extern bool GetNamedPipeClientProcessId(IntPtr Pipe, out UInt32 ClientProcessId);
public static UInt32 getNamedPipeClientProcID(NamedPipeServerStream pipeServer)
{
//RETURN:
// = Client process ID that connected via the named pipe to this server, or
// = 0 if error
UInt32 nProcID = 0;
try
{
IntPtr hPipe = pipeServer.SafePipeHandle.DangerousGetHandle();
GetNamedPipeClientProcessId(hPipe, out nProcID);
}
catch
{
//Error
nProcID = 0;
}
return nProcID;
}
我对“DangerousGetHandles”和“DllImports”不是很擅长。我在这里使用的 Win32 更好。