Не съм сигурен дали просто не го виждам или какво? Трябва да знам идентификатора на процеса на клиент, който се е свързал чрез наименуван канал към моя сървър от екземпляр на 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, който използвам тук.
DangerousGetHandle
. - person David Heffernan   schedule 09.04.2013