该问题来自论坛提问,两个api函数
GetLastInputInfo:获取闲置时间
ShowCursor:设置鼠标状态,这里要注意,本函数并不能直接影响鼠标状态,而是设置状态计数器,参数为True时计数器+1,反之-1,只有当计数器大于等于0时鼠标为显示,小于0时鼠标隐藏。所以可能会发生某次调用该函数而没有生效的情况。为了避免这个问题,可以用wile循环判断结果。
-
using
System;
-
using
System.Windows.Forms;
-
using
System.Runtime.InteropServices;
-
namespace
WindowsApplication5
-
{
-
public
partial
class
Form1:Form
-
{
-
-
-
-
[StructLayout(LayoutKind.Sequential)]
-
public
struct
LASTINPUTINFO
-
{
-
[MarshalAs(UnmanagedType.U4)]
-
public
int
cbSize;
-
[MarshalAs(UnmanagedType.U4)]
-
public
uint
dwTime;
-
}
-
-
-
-
-
-
[DllImport(
"user32.dll"
)]
-
public
static
extern
bool
GetLastInputInfo(
ref
LASTINPUTINFOplii);
-
-
-
-
-
-
-
[DllImport(
"user32.dll"
,EntryPoint=
"ShowCursor"
,CharSet=CharSet.Auto)]
-
public
static
extern
int
ShowCursor(
bool
bShow);
-
public
Form1()
-
{
-
InitializeComponent();
-
-
System.Windows.Forms.Timertimer=
new
Timer();
-
timer.Enabled=
true
;
-
timer.Interval=100;
-
timer.Tick+=
new
EventHandler(timer_Tick);
-
-
}
-
-
int
iCount=0;
-
void
timer_Tick(
object
sender,EventArgse)
-
{
-
-
long
i=getIdleTick();
-
if
(i>5000)
-
{
-
while
(iCount>=0)
-
{
-
iCount=ShowCursor(
false
);
-
}
-
}
-
else
-
{
-
while
(iCount<0)
-
{
-
iCount=ShowCursor(
true
);
-
}
-
}
-
}
-
-
-
-
-
public
long
getIdleTick()
-
{
-
LASTINPUTINFOvLastInputInfo=
new
LASTINPUTINFO();
-
vLastInputInfo.cbSize=Marshal.SizeOf(vLastInputInfo);
-
if
(!GetLastInputInfo(
ref
vLastInputInfo))
return
0;
-
return
Environment.TickCount-(
long
)vLastInputInfo.dwTime;
-
}
-
-
-
}
-
}
分享到:
相关推荐
该功能允许用户自定义一段时间后自动锁定界面,从而保护用户数据安全并节省资源。此篇内容通过一段示例代码来展示如何实现这一功能。 ### 二、关键技术点解析 #### 2.1 定义变量与状态管理 在实现自动锁屏功能前...
这个功能允许程序在用户未操作计算机(如键盘和鼠标未使用)达到一定时间后执行特定的任务,例如节能、锁定屏幕或者运行定时任务。在本场景中,我们看到标签提到了"Delphi",这表明我们讨论的是使用Delphi编程语言...
标题中的“系统闲置一定时间自动关机的程序”是指一种软件功能,它允许计算机在用户未进行任何操作达到设定的时间后自动关闭。这种程序通常用于节能或者是在无人使用时自动维护系统。在这个特定的案例中,这个程序是...
鼠标自动摇动工具,自动来回移动鼠标,避免产生空闲时间。 Mouse Jiggler 的唯一功能就是自动摇动鼠标,有两种模式: 第一种真的在遥控,肉眼可以看到鼠标在移动。 第二种 Zen 模式,鼠标本身没有移动,但系统会...
标题中的“获取键盘鼠标空闲时间实现智能关机”指的是一个使用Delphi编程语言开发的程序,该程序能够监测用户的键盘和鼠标活动,并在检测到一段时间内无任何输入(即设备空闲)后自动执行关机操作。这个功能通常用于...
当IIS处于闲置状态,即一段时间内没有接收到任何请求时,IIS可能会自动关闭工作进程或进入节能模式,这可能导致定时任务无法按预期运行。在IIS闲置时间问题上,我们需要关注两个主要方面: 1. **IIS应用程序池设置*...
自动关机软件的工作原理是通过监控键盘和鼠标的活动,以及系统空闲时间来判断电脑是否处于闲置状态。当设定的闲置时间到达后,软件将启动关机程序,使电脑进入关机、休眠或睡眠模式。这样的功能对于办公室环境、共享...
这样一来,当用户离开电脑一段时间,或主动按下快捷键时,Foxmail会自动执行锁定操作。用户下次打开邮箱时,系统会要求输入先前设置的锁定密码,从而确保邮箱的安全。 通过这个功能,Foxmail邮箱的安全性得到了显著...
在Windows操作系统中,获取键盘和鼠标空闲时间是一项常见的需求,比如用于实现自动锁屏、节能功能或用户活动检测。本文将深入探讨如何利用Windows API函数来实现这一目标,并提供源代码示例。 首先,我们需要了解...
这种设计可以在系统关闭且总电流消耗小于1微安的情况下,显著延长电池的闲置时间,避免消费者在购买新设备时发现需要立即充电,从而提升用户体验。 总结来说,一次性按钮开关和相关的电路设计技术,如TI的TPS3420,...
闲置关机则是在用户无操作一段时间后自动执行关机,有助于节省能源。 压缩包内的文件名“自动定时关机软件简体中文免费版V3.02.28”表明这是一个具有自动定时功能的中文免费软件,版本号为V3.02.28,意味着它已经...
3. 闲置关机:如果电脑一段时间内无任何操作,比如用户离开电脑,软件可以设定在一段时间后自动关机,节约能源。 4. 电量关机:对于笔记本用户,可以在电池电量低于特定值时自动关机,防止因电量耗尽导致的数据丢失...
在获取到闲置时间后,我们可以根据设定的阈值决定是否执行锁定或关机操作。锁定计算机通常需要用到`LockWorkStation`函数: ```cpp #include void lockComputer() { if (!LockWorkStation()) { // 锁定失败,...
本篇文章将深入探讨如何利用AD组策略实现超过非活动时间后自动注销域计算机,以确保系统资源的安全和高效。 首先,我们需要了解AD组策略的工作原理。组策略是通过组策略对象(Group Policy Objects, GPOs)来实现的...
Win7 睡眠模式是一种非常实用的功能,它可以在电脑闲置一段时间后自动进入睡眠状态,以节省电能和延长电池寿命。下面将对 Win7 睡眠模式的设置进行详细介绍: 什么是 Win7 睡眠模式? Win7 睡眠模式是 Windows 7 ...
主要的函数`setIdle()`接受两个参数:一个是闲置时间的阈值,以毫秒为单位;另一个是当用户进入闲置状态时要调用的回调函数。例如: ```javascript setIdle(5000, function() { console.log('用户已经闲置了5秒钟'...
4. **闲置关机**:如果电脑长时间无操作,可以设定在一段时间的闲置后自动关机,这样能有效地节省电能,同时保护电脑硬件免受过度使用的影响。 5. **任务完成后关机**:用户可以设定在某个程序运行完毕或者指定的...
1. 闲置土地定义:闲置土地是指土地使用者在取得土地使用权后,未经原批准用地机关同意,超过规定期限未动工建设的建设用地。这种情况包括三种常见情形:(1) 土地出让合同未约定或批准文件未规定动工期限,满一年未...
校园闲置物品交易平台代码 java校园闲置物品交易平台代码 基于SSM的校园闲置物品交易平台代码 1、校园闲置物品交易...有任何使用问题欢迎随时与博主沟通,第一时间进行解答! 3、解压说明:本资源需要电脑端使用Wi
这款软件的出现,极大地简化了这一过程,让手机在闲置一段时间后自动进入键盘锁定状态,提高了使用体验。 BlackBerry 8700是一款经典的商务智能手机,以其全键盘和强大的电子邮件功能深受用户喜爱。然而,传统的...