Код: Выделить всё
public class clsAttendance
{
int _IdleCount = 0;
[DllImport("user32.dll")]
static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
public clsAttendance()
{
_clsData = new clsDataConnection();
}
public uint GetIdleTime()
{
LASTINPUTINFO lastInPut = new LASTINPUTINFO();
lastInPut.cbSize =
(uint)System.Runtime.InteropServices.Marshal.SizeOf(lastInPut);
GetLastInputInfo(ref lastInPut);
return ((uint)Environment.TickCount - lastInPut.dwTime);
}
public uint GetLastInputTime()
{
uint idleTime = 0;
LASTINPUTINFO lastInputInfo = new LASTINPUTINFO();
lastInputInfo.cbSize = (uint)Marshal.SizeOf(lastInputInfo);
lastInputInfo.dwTime = 0;
uint envTicks = (uint)Environment.TickCount;
if (GetLastInputInfo(ref lastInputInfo))
{
uint lastInputTick = lastInputInfo.dwTime;
idleTime = envTicks - lastInputTick;
}
return ((idleTime > 0) ? (idleTime / 1000) : 0);
}
}
internal struct LASTINPUTINFO
{
public uint cbSize;
public uint dwTime;
}
private void Form1_Load(object sender, EventArgs e)
{
a = new Timer();
a.Tick += A_Tick;
a.Interval = 10 * 60 * 1000;
a.Start();
}
private void A_Tick(object sender, EventArgs e)
{
ExceptionLogger.WriteErrorLog($"Current time: {DateTimeOffset.Now}");
ExceptionLogger.WriteErrorLog($"Last input time without timespan: { clsSystemIdle.GetLastInputTime()}");
ExceptionLogger.WriteErrorLog($"Idle time without timespan: {_clsAtt.GetIdleTime()}");
ExceptionLogger.WriteErrorLog(Message: $"Last Input TimeSpan Minutes : {TimeSpan.FromMilliseconds(clsSystemIdle.GetLastInputTime())}");
ExceptionLogger.WriteErrorLog(Message: $"Idle TimeSpan Minutes : {TimeSpan.FromMilliseconds(_clsAtt.GetIdleTime())}");
}
Текущее время: 04.03.2022, 13:49:59 +05:30
Время последнего ввода без временного интервала: 125
Время простоя без временного интервала: 125266
Время последнего ввода: 00:00:00.1250000
Время простоя: 00:02:05.3440000
Текущее время: 04.03.2022 13:59:59 +05:30
Время последнего ввода без временного интервала: 22
Время простоя без временного интервала: 22203
TimeSpan последнего ввода: 00:00:00.0220000
TimeSpan простоя: 00:00:22.2810000
Текущее время: 04.03.2022 14:09:59 +05:30
Время последнего ввода без временного интервала: 101
Время простоя без временного интервала: 101329
Время последнего ввода: 00:00:00.1010000
Время простоя: 00:01:41.4380000
Текущее время: 04.03.2022 14:19:59 +05:30
Время последнего ввода без временного интервала: 3
Время простоя без временного интервала: 3172
TimeSpan последнего ввода: 00:00:00.0030000
Idle TimeSpan: 00:00:03.1720000
Здесь я хочу последние 40 минут простоя системы, но как получить 40 значение минут из приведенных выше возвращаемых значений и распечатать файл журнала исключений. Подскажите пожалуйста, как решить эту задачу.
Подробнее здесь: https://stackoverflow.com/questions/713 ... in-c-sharp