.net – 如何判断Windows何时处于非活动状态
发布时间:2020-12-14 01:45:07 所属栏目:Windows 来源:网络整理
导读:只有当您没有使用计算机一段时间(例如屏幕保护程序,Google桌面索引等)时,各种程序才能执行操作. 他们怎么知道什么时候不活动?在Windows中有一些功能可以告诉你,它已经停用了多长时间,或者你必须使用某种键盘/鼠标钩来自己跟踪活动吗? 我正在使用C#,但我对
只有当您没有使用计算机一段时间(例如屏幕保护程序,Google桌面索引等)时,各种程序才能执行操作.
他们怎么知道什么时候不活动?在Windows中有一些功能可以告诉你,它已经停用了多长时间,或者你必须使用某种键盘/鼠标钩来自己跟踪活动吗? 我正在使用C#,但我对任何确定不活动的方法感兴趣.
编辑:改变了答案,提供了Shy答案背后的文本和细节(应该被接受).随意合并和删除这一个.
GetLastInputInfo功能 从P / Invoke粘贴在这里 此函数检索自上次用户输入以来的时间 [DllImport("user32.dll")] static extern bool GetLastInputInfo(ref LASTINPUTINFO plii); static int GetLastInputTime() { int idleTime = 0; LASTINPUTINFO lastInputInfo = new LASTINPUTINFO(); lastInputInfo.cbSize = Marshal.SizeOf( lastInputInfo ); lastInputInfo.dwTime = 0; int envTicks = Environment.TickCount; if( GetLastInputInfo( ref lastInputInfo ) ) { int lastInputTick = lastInputInfo.dwTime; idleTime = envTicks - lastInputTick; } return (( idleTime > 0 ) ? ( idleTime / 1000 ) : idleTime ); } [StructLayout( LayoutKind.Sequential )] struct LASTINPUTINFO { public static readonly int SizeOf = Marshal.SizeOf(typeof(LASTINPUTINFO)); [MarshalAs(UnmanagedType.U4)] public int cbSize; [MarshalAs(UnmanagedType.U4)] public UInt32 dwTime; } FWIW:我在AnAppADay期间实现了全局键盘和鼠标钩.看到这个应用程序的来源 – 它非常接近你想要的.你想要的类在AnAppADay.Utils命名空间中.[由于linkrot] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Skype接管网址
- windows – 使用什么而不是FTP
- windows-server-2012-r2 – Office 365 MFA ActiveSync免除
- Windows上的Memcache PHP扩展
- Windows – 致命:不是git存储库 – 在BSoD之后
- windows-8 – 如何以编程方式在WinRT(Windows 8)中获取mac地
- 错误:不支持使用MSBuild 64位构建Windows Phone应用程序
- windows – Add-AzureAccount:unknown_user_type:天蓝色自
- windows-server-2008 – 什么是“很多”页面错误?
- 如何在.NET中监听Windows广播消息?