C'è un modo per ottenere il tempo di inattività della macchina, come nel tempo in cui la macchina non è stata utilizzata, in minuti/ore usando Powershell o un file batch?Tempo di inattività della macchina
risposta
Ecco una soluzione PowerShell che utilizza l'API Win32 GetLastInputInfo.
Add-Type @'
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace PInvoke.Win32 {
public static class UserInput {
[DllImport("user32.dll", SetLastError=false)]
private static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
[StructLayout(LayoutKind.Sequential)]
private struct LASTINPUTINFO {
public uint cbSize;
public int dwTime;
}
public static DateTime LastInput {
get {
DateTime bootTime = DateTime.UtcNow.AddMilliseconds(-Environment.TickCount);
DateTime lastInput = bootTime.AddMilliseconds(LastInputTicks);
return lastInput;
}
}
public static TimeSpan IdleTime {
get {
return DateTime.UtcNow.Subtract(LastInput);
}
}
public static int LastInputTicks {
get {
LASTINPUTINFO lii = new LASTINPUTINFO();
lii.cbSize = (uint)Marshal.SizeOf(typeof(LASTINPUTINFO));
GetLastInputInfo(ref lii);
return lii.dwTime;
}
}
}
}
'@
E un esempio di utilizzo:
for ($i = 0; $i -lt 10; $i++) {
Write-Host ("Last input " + [PInvoke.Win32.UserInput]::LastInput)
Write-Host ("Idle for " + [PInvoke.Win32.UserInput]::IdleTime)
Start-Sleep -Seconds (Get-Random -Minimum 1 -Maximum 5)
}
Grazie mille! Esattamente quello che sto cercando. Come posso formattare l'output in modo che sia più leggibile, vale a dire 4 ore, 15 minuti, 21 secondi? Grazie ancora! – StrattonL
Utilizzare [formattazione data] (http://technet.microsoft.com/en-us/library/ee692801.aspx) –
Ho aggiornato l'esempio per mettere in mostra più funzionalità. –
$Last = [PInvoke.Win32.UserInput]::LastInput
$Idle = [PInvoke.Win32.UserInput]::IdleTime
$LastStr = $Last.ToLocalTime().ToString("MM/dd/yyyy hh:mm tt")
Write-Host ("Last user keyboard/mouse input: " + $LastStr)
Write-Host ("Idle for " + $Idle.Days + " days, " + $Idle.Hours + " hours, " + $Idle.Minutes + " minutes, " + $Idle.Seconds + " seconds.")
Prova questa - anche se in esecuzione in remoto potrebbe essere in esecuzione su una sessione diversa e quindi un diverso tempo di inattività?
- 1. Tempo di inattività applicazione
- 2. WPF: tempo di inattività applicazione
- 3. VB Detect Tempo di inattività
- 4. Ottenere inattività/tempo di inattività in un'applicazione WPF
- 5. rilevamento del tempo di inattività utilizzando python
- 6. Inizializzazione applicazione - Tempo di inattività enorme
- 7. Tempo di inattività dell'istanza RDS AWS
- 8. Come si esegue l'elaborazione del tempo di inattività nell'applicazione WPF?
- 9. Ottenere il tempo di inattività del sistema con Qt
- 10. Tempo di inattività durante il ricaricamento del daemon mod_wsgi?
- 11. Una macchina di turazione ha il concetto di "tempo"?
- 12. Amazon EC2 timeout ssh inattività
- 13. Reindirizzamento di inattività Google Chrome
- 14. Come scadere della sessione a causa di inattività in Django?
- 15. Errore: timeout di inattività della sincronizzazione in Node.js Modulo MYSQL
- 16. Ruby: Net :: Timeout inattività HTTP?
- 17. Suoni della macchina in C#
- 18. Timeout inattività IMAP
- 19. Endianness della macchina virtuale Java
- 20. IIS: Timeout di inattività vs Recycle
- 21. Timer di inattività personalizzato iOS
- 22. Collegamenti inattesi dopo il periodo di inattività
- 23. Intercettazione della chiamata di arresto della macchina java?
- 24. Inattività e attività WPF
- 25. VimScript: esiste un autocmd per un'azione eseguita dopo il tempo di inattività?
- 26. Problema di schedulazione macchina
- 27. Come gestire i passeggeri stantii che causano tempi di inattività
- 28. Significato della macchina in attesa in autosys
- 29. Progettazione dello stato della macchina Python
- 30. Come ssh nell'istanza VirtualBox della macchina docker?
Definire "non utilizzato per" più precisamente. Da quando è stato disconnesso? Quanto è durato lo screen saver? Che cosa esattamente? –
Non riesco a fare nulla di buono su questo sito ... Come succede, la risposta qui sotto era esattamente quello che stavo cercando - il tempo di inattività dal punto in cui l'utente ha smesso di muovere il mouse o di premere i tasti sulla tastiera. – StrattonL
Non so perché qualcuno ti abbia votato, forse la domanda era un po 'vaga, o non mostra se hai provato qualcosa ... Assicurati di dare un'occhiata [come chiedere] (http://stackoverflow.com/ domande/domande) –