S sl98_1 Unregistered / Unconfirmed GUEST, unregistred user! 2005-11-19 #1 我想咨询以下 用什么函数可以检测 在一段时间内 没有鼠标或者键盘,或者其他输入设备(如手写板)使用电脑的。<br>还有一个问题 我想检测到没有用后,关闭 我所有运行的子程序 ,只保留主程序
S sl98_1 Unregistered / Unconfirmed GUEST, unregistred user! 2005-11-19 #2 我想咨询以下 用什么函数可以检测 在一段时间内 没有鼠标或者键盘,或者其他输入设备(如手写板)使用电脑的。<br>还有一个问题 我想检测到没有用后,关闭 我所有运行的子程序 ,只保留主程序
Q qingwen07 Unregistered / Unconfirmed GUEST, unregistred user! 2005-11-19 #4 同意楼上的,如果要达到这种效果好象只能用勾子啊,期待其他好方法....
L lxw5214 Unregistered / Unconfirmed GUEST, unregistred user! 2005-11-19 #5 提供一个系统空闲时间函数(ms),你可以用timer控件定时监测,如果系统空闲时间超过指定时间则做你想做的事:(系统空闲-指系统无任何操作,包括键盘和鼠标)<br>function LastInput:dword;<br>var<br> LInput: TLastInputInfo;<br>begin<br> LInput.cbsize := sizeof(TLastInputInfo);<br> GetLastInputInfo(LInput);<br> result := GetTickCount - LInput.dwtime;<br>end;
提供一个系统空闲时间函数(ms),你可以用timer控件定时监测,如果系统空闲时间超过指定时间则做你想做的事:(系统空闲-指系统无任何操作,包括键盘和鼠标)<br>function LastInput:dword;<br>var<br> LInput: TLastInputInfo;<br>begin<br> LInput.cbsize := sizeof(TLastInputInfo);<br> GetLastInputInfo(LInput);<br> result := GetTickCount - LInput.dwtime;<br>end;
S savetime Unregistered / Unconfirmed GUEST, unregistred user! 2005-11-20 #6 GetLastInputInfo 在 Win2000 以上提供,效果很好。<br>如果需要重置时间,调用 keybd_event 重置。
S sl98_1 Unregistered / Unconfirmed GUEST, unregistred user! 2005-11-21 #7 lxw5214 您好 你的意思我明白了 ,但是你的函数是否可以解释一下。或者有没有这样的类子给小第一个。我是新手您的函数没看懂<br>shenlei98-1@163.com
M MayRoy Unregistered / Unconfirmed GUEST, unregistred user! 2005-12-02 #9 使用Windows API函数GetlnputState去判断。
R royal1442 Unregistered / Unconfirmed GUEST, unregistred user! 2005-12-23 #13 function LastInput: DWord;<br>var<br> LInput: TLastInputInfo;<br>begin<br> LInput.cbSize := SizeOf(TLastInputInfo);<br> GetLastInputInfo(LInput);<br> result := GetTickCount - LInput.dwTime;<br>end;<br><br>procedure TForm1.Timer1Timer(Sender: TObject);<br>begin<br> if LastInput > 10000 then //此处的 10000是指10000毫秒。<br> begin<br> if MDIChildCount >= 0 then<br> begin<br> for i := 0 to MDIChildCount -1 do<br> begin<br> MDIChildren.Close;<br> end;<br> end;<br> end;<br>end;
function LastInput: DWord;<br>var<br> LInput: TLastInputInfo;<br>begin<br> LInput.cbSize := SizeOf(TLastInputInfo);<br> GetLastInputInfo(LInput);<br> result := GetTickCount - LInput.dwTime;<br>end;<br><br>procedure TForm1.Timer1Timer(Sender: TObject);<br>begin<br> if LastInput > 10000 then //此处的 10000是指10000毫秒。<br> begin<br> if MDIChildCount >= 0 then<br> begin<br> for i := 0 to MDIChildCount -1 do<br> begin<br> MDIChildren.Close;<br> end;<br> end;<br> end;<br>end;
S sl98_1 Unregistered / Unconfirmed GUEST, unregistred user! 2005-12-24 #14 谁能解释一下<br> LInput.cbSize := SizeOf(TLastInputInfo);<br> GetLastInputInfo(LInput);<br> result := GetTickCount - LInput.dwTime;<br>什么意思,谢谢了 解释了 马上结贴
谁能解释一下<br> LInput.cbSize := SizeOf(TLastInputInfo);<br> GetLastInputInfo(LInput);<br> result := GetTickCount - LInput.dwTime;<br>什么意思,谢谢了 解释了 马上结贴
R royal1442 Unregistered / Unconfirmed GUEST, unregistred user! 2005-12-24 #15 LInput.cbSize := SizeOf(TLastInputInfo);//设置变量的 SIZE<br> GetLastInputInfo(LInput);//获取系统最后的鼠标键盘操作的信息,封装了调用API的过程<br> result := GetTickCount - LInput.dwTime;//GetTickCount是系统运行时间;LInput.dwTime是系统最后一次接受鼠标键盘操作的时间,他们的差值就是到目前为止,系统空闲了多少时间。<br>//如果还看不懂的话,请恕我无能为力了!<br><br>//PS:TLastInputInfo和GetLastInputInfo都在windows单元,具体细节你自己去看!<br>//做学问有时候也是需要不求甚解的!
LInput.cbSize := SizeOf(TLastInputInfo);//设置变量的 SIZE<br> GetLastInputInfo(LInput);//获取系统最后的鼠标键盘操作的信息,封装了调用API的过程<br> result := GetTickCount - LInput.dwTime;//GetTickCount是系统运行时间;LInput.dwTime是系统最后一次接受鼠标键盘操作的时间,他们的差值就是到目前为止,系统空闲了多少时间。<br>//如果还看不懂的话,请恕我无能为力了!<br><br>//PS:TLastInputInfo和GetLastInputInfo都在windows单元,具体细节你自己去看!<br>//做学问有时候也是需要不求甚解的!