Makinenin kullanılmadığı süreye göre Powershell veya toplu iş dosyası kullanarak dakika/saat olarak makinenin boşta kalma süresini elde etmenin bir yolu var mı?Makinenin boş kalmadığı anı alın
cevap
İşte Win32 API GetLastInputInfo kullanan bir PowerShell çözümdür.
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;
}
}
}
}
'@
Ve bir örnek kullanımı:
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)
}
Çok teşekkürler! Tam olarak aradığım şey. Çıkışı nasıl daha okunabilir, yani 4 saat, 15 dakika, 21 saniye olacak şekilde nasıl biçimlendirebilirim? Tekrar teşekkürler! – StrattonL
[Tarih formatlama] 'yı kullanın (http://technet.microsoft.com/en-us/library/ee692801.aspx) –
Daha fazla yeteneğini göstermek için örneği güncelledim. –
$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.")
bu deneyin - bu nedenle farklı bir boşta zaman uzaktan çalışan rağmen farklı bir oturumda üzerinde çalışıyor olabilir ve?
- 1. Bir uygulamanın tüm görünümlerini-her anı alın?
- 2. Makinenin .NET alan adı mı?
- 3. DataGridView.DataSource ayarlandıktan sonra boş satırlar alın
- 4. Bootstrap'in Carousel (v2.3.2) üzerindeki yükseklik değişimi anı
- 5. bash - Belirli bir dosyadan anı mı alacaksınız?
- 6. AnimateCamera yakınlaştırma anı nasıl tetiklenir 'sadece' sonlandır?
- 7. Yeni satır UITextView'da başladığı anı algıla.
- 8. Geçen ayın ay adını kullanarak anı kullanın
- 9. nasıl R makinenin epsilon edinir? R makinenin epsilon depolayan bir sabit
- 10. Makinenin IP adresleri Rust'tan nasıl edinilir?
- 11. Makinenin neden askıya alındığını nasıl belirleyebilirim?
- 12. Bir anı, anasistemde ISO 8601 olarak nasıl biçimlendiririm?
- 13. moment.js ve kullanımdan kaldırılmış uyarı. zaman damgası anı tarihi nesnesi
- 14. Windows hizmetinin kaldırılması bazen makinenin yeniden başlatılmasını zorluyor
- 15. WiX kullanarak kurulumdan sonra makinenin yeniden başlatılması istenebilir mi?
- 16. Uygula Makinenin içinde odaklanmak için dokunun 2 API
- 17. C# - Makinemin yerel IP Adresini bulma ve sanal makinenin değil
- 18. Uzak makinenin SSH anahtarlarını ansible git modülünde nasıl kullanabilirim?
- 19. Bir makinenin Google Compute Engine örneği olup olmadığını nasıl öğrenirim?
- 20. TensorFlow, bir makinenin tüm CPU'larını ONE aygıtı olarak görüyor mu?
- 21. Makinenin özelliklerinden vm oluşturma süresi nasıl elde edilir
- 22. Sunucu makine adını ASP.NET MVC'de alın?
- 23. GÜNCELLEME boş sonra boş
- 24. PDO veriden alın
- 25. Tensorflow modelinden ağırlık alın
- 26. Mango Uygulaması Döşeme - geri alın
- 27. HTML5 boş elemanlar boş By
- 28. AppKey boş veya boş olamaz
- 29. Pikselleri Alın + En Sık Renkleri Satın Alın
- 30. Değer seçeneği sayfası alın ACF
"Daha önce kullanılmamış" tanımını yapın. Oturum açıldığından beri mi? Ekran koruyucu ne kadar sürdü? Tam olarak ne? –
Bu sitede doğru bir şey yapamıyorum gibi görünüyor ... Olduğu gibi, aşağıdaki cevap tam olarak aradığım şeydi - kullanıcı, fareyi hareket ettirmeyi bıraktığı veya klavyedeki tuşlara basmayı bıraktığı noktadan boşta kalma süresiydi. – StrattonL
Birinin size neden oy verdiğinden emin değilsiniz, belki de soru biraz belirsizdi ya da herhangi bir şey denediğinizi göstermiyorsa ... [Nasıl yapılacağını] kontrol ettiğinizden emin olun (http://stackoverflow.com/ sorular/nasıl yapılır) –