我正在尝试检查进程是否已在当前活动的会话ID下运行。
[DllImport("kernel32.dll")]
static extern bool ProcessIdToSessionId(uint dwProcessId, out uint pSessionId);
[DllImport("kernel32.dll")]
private static extern uint WTSGetActiveConsoleSessionId();
public static bool CheckCurrentuser()
{
uint sessionID;
//get all process id's
Process[] localByName = Process.GetProcessesByName("notepad");
if (localByName.Length == 0)
{ return false; }
else
{
uint[] procarray = new uint[localByName.Length];
for (int i = 0; i < localByName.Length; i++)
{
procarray[i] = Convert.ToUInt32(localByName[i].Id);
ProcessIdToSessionId(procarray[i], out sessionID);
if (sessionID == WTSGetActiveConsoleSessionId())
{
return true;
}
}
return false;
}
}
但是,使用上面的代码,我在使用多用户RDP会话进行测试时遇到了一些问题:
有什么建议吗?
由于