[size=2]定时检测软件有无被操作过![size/]由于我在设计时候,子窗口都采用模态弹出窗口(窗口比较多)。现在需要检测软件在一定时间内有无被操作过(例如点击,关闭窗口操作);若没有类似操作,我要弹出注销窗口,重新登录。给于你们些提示和方法,谢谢了。

解决方案 »

  1.   

    用一个定时器去检查Flag,你操作过子窗口了,就把这个Flag设成true
      

  2.   

    监控键盘鼠标事件 例如private   void   timer1_Tick(object   sender,   System.EventArgs   e) 

      if(piTimeSpan   >   60) 
      { 
          //to   do   somthing 此处调用你的注销逻辑
      } 
      else 
      { 
      piTimeSpan   ++; 
      } 

    protected   override   bool   ProcessCmdKey(ref   Message   msg,   Keys   keyData) 
      { 
      piTimeSpan   =   0; 
      return   base.ProcessCmdKey   (ref   msg,   keyData); 
      } private   void   Form1_MouseMove(object   sender,   System.Windows.Forms.MouseEventArgs   e) 
      { 
      piTimeSpan   =   0; 
      } 
      

  3.   

    jiatong1981 兄弟的方法可用...支持一下...
      

  4.   

    感谢jiatong1981提过思路,让我知道如何具体处理窗口操作响应。我在问题指出,很多弹出模态窗口,都采用这种方法去处理的话,我要在每个窗体上都要加处理,工作量大
      

  5.   

    那可以写一个底层的Form里面写jiatong1981的方法,其他Form继承它就可以了
      

  6.   

    public class baseForm: System.Windows.Forms.Form
    {
    public baseForm()
    {
    this.MouseMove += new MouseEventHandler(baseForm_MouseMove);
    }

    private void baseForm_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
    {
    System.Diagnostics.Debug.Print("mouse moving");
    }

    protected override bool ProessCmdKey(ref Message msg, Keys keyData)
    {
    System.Diagnostics.Debug.Print("Key Pressing");
    return base.ProcessCmdKey(msg, keyData);
    }
    }ProessCmdKey  Error:  no suitable method found to override
    我直接写ProessCmdKey方法为何出错