How to get console session idle time?
I can get idle time of sessions that logon by rdp as followering code.
public double GetSessionIdleTime()
{
try
{
int sessionId = Process.GetCurrentProcess().SessionId;
ITerminalServicesManager manager = new TerminalServicesManager();
using (ITerminalServer server = manager.GetLocalServer())
{
server.Open();
foreach (ITerminalServicesSession session in
server.GetSessions())
{
if (session.ConnectionState == ConnectionState.Listening)
{
continue;
}
//ÅųýµÇ¼ʱ¼äΪ¿ÕµÄÌØÊâ»á»°¡£ÔÚWin2008ÏÂÕâÖÖÌØÊâ»á»°Óû§ÃûҲΪ¿Õ¡£
if (!session.LoginTime.HasValue)
{
continue;
}
if (sessionId == session.SessionId)
{
Console.WriteLine("Session:"+session.IdleTime.TotalSeconds);
return session.IdleTime.TotalSeconds;
}
}
}
return 0;
}
catch (Exception ex)
{
logger.Error("Get new session information error!" + ex);
return 0;
}
}
But these codes did not get idle time of sessions that created by
console.How do I do?