如何判定窗体的鼠标是否活动,或无输入状态.本人想做个自动关闭程序,比如隔了10分钟后,判断后,鼠标无活动后,就关闭程序
先谢谢了
先谢谢了
解决方案 »
- delphi的spinEdit
- 求教 关于dbgrideh
- missing connection or connectionstring是什么问题啊
- DBchart及SQL难题,大家来帮我想想办法
- 问一个关于delphi7写的webservice的端口问题!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 菜鸟求助
- 关于MDI界面
- 实在太急了。Ado连接执行完命令后的状态返回问题?在线。。。。
- 谁写过软件需求说明书,能不能提供一份参考,一定给分!
- 怎样修复数据库?
- 散1000分,第一个
- 关于DBGrid 取特定网格数据的的问题
var
vLastInputInfo: TLastInputInfo;
begin
vLastInputInfo.cbSize := SizeOf(vLastInputInfo);
GetLastInputInfo(vLastInputInfo);
if GetTickCount - vLastInputInfo.dwTime > 600000 then
begin
timer1.Enabled:= false;
Application.Terminate;
end;
end;
谢谢
begin
记录相关动作的时间;
end;定期判断最后一次动作是否超过指定时间,做相应处理。
//我的环境Win2003
procedure TForm1.Timer1Timer(Sender: TObject);
var
vLastInputInfo: TLastInputInfo;
begin
vLastInputInfo.cbSize := SizeOf(vLastInputInfo);
GetLastInputInfo(vLastInputInfo);
if GetTickCount - vLastInputInfo.dwTime > 600000 then //我设置的是10分钟无输入自动关闭主程序,你等了多久?
begin
timer1.Enabled:= false;
Application.Terminate;
end;
end;
而且是2000和XP都可以用的。
不能用的原因只能有一个,你鼠标或者键盘动了,再不就是你没有设置并放到Timer事件中。void __fastcall TKfMainForm::IdleTimerTimer(TObject *Sender)
{
//TODO:每隔5秒钟看看键盘和鼠标多久没动过了。
LASTINPUTINFO pLASTINPUTINFO = {0};
pLASTINPUTINFO.cbSize = sizeof(LASTINPUTINFO); GetLastInputInfo(&pLASTINPUTINFO); try
{
if((GetTickCount()- pLASTINPUTINFO.dwTime) >= IdleTimer->Tag)
{
//已经到设置的时间了,自动下线。
}
else
{
}
}catch(...){}
}
//---------------------------------------------------------------------------
procedure TForm1.Timer1Timer(Sender: TObject);
var
vLastInputInfo: TLastInputInfo;
begin
vLastInputInfo.cbSize := SizeOf(vLastInputInfo);
GetLastInputInfo(vLastInputInfo);
if GetTickCount - vLastInputInfo.dwTime > 1000 then //我设置的是10分钟无输入自动关闭主程序,你等了多久? //我这儿设成了1秒
begin
timer1.Enabled:= false;
Application.Terminate;
end;
end;