我正在使用桌面应用程序,如果应用程序在特定时间内处于空闲状态,我想锁定该应用程序,如果有任何事件被触发,则应重置到期时间。当应用程序被锁定时,如果用户想要再次登录应用程序,则必须再次输入用户名和密码。
现在我正在使用计时器控制来处理此功能,但我不知道正确的位置来编写重置到期时间的代码。
请告诉我如何做到这一点......
答案 0 :(得分:0)
你可以有一个计时器控件,当fires隐藏所有表单时,会生成一个登录框。
这应该指向正确的方向 - 我不会只是给你代码。
答案 1 :(得分:0)
这是一个非常好的例子。 Detecting Application Idleness
您也可以使用Application.Idle Event,但您必须实现自己的锁定逻辑。实际上你甚至可以使用它来重置/启动理想的计时器。
编辑1
编辑2
此函数检索自上次用户输入以来的秒数。但是,这不是专门针对您的应用程序而是针对Windows。请查看here了解更多详情。 here是一个类似的主题。
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 ) : 0);
}