./c0de/c/idletime.txt

0.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
char *GetIdleTime(void)
{
   LASTINPUTINFO *pLastInputInfo;
   static char szTimeBuffer[128];
   unsigned long lIdleTime, lDays, lHours, lMinutes, lSeconds;;
 
   if (!(pLastInputInfo = (LASTINPUTINFO *)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(LASTINPUTINFO)))) { return NULL; }
 
   pLastInputInfo->cbSize = sizeof(LASTINPUTINFO);
 
   if (!GetLastInputInfo(pLastInputInfo))
   {
      HeapFree(GetProcessHeap(), HEAP_ZERO_MEMORY, pLastInputInfo);
      return NULL;
   }
 
   lIdleTime = (GetTickCount() - pLastInputInfo->dwTime) / 1000;
 
   HeapFree(GetProcessHeap(), HEAP_ZERO_MEMORY, pLastInputInfo);
 
   lDays = lIdleTime / 86400;
   lHours = (lIdleTime % 86400) / 3600;
   lMinutes  = ((lIdleTime % 86400) % 3600) / 60;
   lSeconds  = ((lIdleTime % 86400) % 3600 % 60);
 
   _snprintf(szTimeBuffer, sizeof(szTimeBuffer), "%d Day(s) %d Hour(s) %d Minute(s) %d Second(s)", lDays, lHours, lMinutes, lSeconds);
 
   return (szTimeBuffer);
} 

Back