DELPHI程序中如何判断操作系统多久没有任何操作?

dxyvxa 2006-10-28 10:14:41
DELPHI程序中如何判断操作系统多久没有任何操作?

本人用delphi了个调用其它软件控制运行个数的小程序。
现在提出一个思路不知如何解决:
想在电脑运行这个小程序后,如果系统在指定时间没有任何操作(键盘&鼠标)
就在到了指定的时间内退出这个程序。

要用什么方法去实现?

请各位指点迷津!!

...全文
572 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dxyvxa 2006-10-28
  • 打赏
  • 举报
回复
是要全局的,不仅仅是对当前程序中的窗口

你那个代码有点不懂。
老之 2006-10-28
  • 打赏
  • 举报
回复
procedure TForm1.Timer1Timer(Sender: TObject);
var t:TLastInputInfo;
begin
t.cbSize := SizeOf(TLastInputInfo);
GetLastInputInfo(t);
Caption := IntToStr(GetTickCount - t.dwTime);
end;
do2008 2006-10-28
  • 打赏
  • 举报
回复
>>GetLastInputInfo这个API可以得到键盘、鼠标处于空闲状态的时间

上面这句话,打错了,

GetTickCount 与 GetLastInputInfo两个函数配合使用,可以得到键盘、鼠标处于空闲状态的时间
do2008 2006-10-28
  • 打赏
  • 举报
回复
老之的代码是正确的,GetLastInputInfo这个API可以得到键盘、鼠标处于空闲状态的时间

用一个Timer来不停的检测,有多久没有操作,就退了程序

procedure TForm1.tmr1Timer(Sender: TObject);
var
t:TLastInputInfo;
idTime:integer;
begin
t.cbSize := SizeOf(TLastInputInfo);
//GetLastInputInfo 获取最后一次输入事件的时间
GetLastInputInfo(t);

//GetTickCount()函数,该函数的返回值是 DWORD型,表示以ms为单位的计算机启动后经历的时间间隔
idTime := GetTickCount - t.dwTime;//得到当前空闲的时间,ms

if (idtime >= 60*1000) then //60秒
begin
Close();//关闭程序
end;
end;

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧