我有一个Delphi+SQL的程序,运行后我希望能做检测用户有没有在操作?
如果一段时间没有操作这个程序就自动退出。
目前想的是放一个计时器,设置一个时间,到了就关闭程序。
现在不知道如何判断操作员有没有操作动作?
哪位教一下,多谢!

解决方案 »

  1.   

    用一个TIMER设一个时间,到了时间就退出
    当有鼠标或者键盘操作时,TIMER重新计时就行了
      

  2.   

    完整代码:function StopTime: integer; //返回没有键盘和鼠标事件的时间
    var
      LInput: TLastInputInfo;
    begin
      LInput.cbSize := SizeOf(TLastInputInfo);
      GetLastInputInfo(LInput);
      Result := (GetTickCount() - LInput.dwTime) div 1000;  // 微妙换成秒
    end;procedure TForm1.Timer1Timer(Sender: TObject);    // Timer 事件
    begin
    if StopTime >= 60 then
      Showmessage('用户已经1分钟没有动键盘鼠标了!');
    end;
    只要用户动了鼠标或键盘,计数就会重新开始,GetLastInputInfo是核心
      

  3.   

    这个是解决办法,也可以用HOOK来做到