一旦应用程序达到不活动状态,它就会停止不活动监视器。但是我想在用户登录后重新启动时间。所以当用户登录时我有一个通知机制,我再次调用启动计时器方法。我收到 Started Monitor 消息,但该应用程序从不跟踪不活动状态,而且我根本没有收到 Timer 报告应用程序是 InACTIVE 消息。请帮忙。 public static System.Windows.Forms.Timer IdleTimer =null; static int MilliSeconds = 60000; static void Main(string[] args) { f = new GeneStudyForm(true, arguments.SystemTimeOutFolder, arguments.SystemTimeOutFile, StartInActivityMonitor); int x = StartInActivityMonitor(); } public static void StartInActivityMonitor() { IdleTimer = new Timer(); LeaveIdleMessageFilter limf = new LeaveIdleMessageFilter(); Application.AddMessageFilter(limf); IdleTimer.Interval = MilliSeconds; //One minute; change as needed Application.Idle += new EventHandler(Application_Idle); if (IdleTimer != null) { MessageBox.Show(IdleTimer.Interval.ToString()); } IdleTimer.Tick += TimeDone; IdleTimer.Tag = InActivityTimer.Started; MessageBox.Show("starting"); IdleTimer.Start(); } static private void Application_Idle(object sender, EventArgs e) { if (!IdleTimer.Enabled) // not yet idling? IdleTimer.Start(); } static private void TimeDone(object sender, EventArgs e) { try { MessageBox.Show("Stopped"); IdleTimer.Stop(); // not really necessary f.MonitorDirectory(); f.UpdateInActivityStatus(); IdleTimer.Tick -= TimeDone; Application.Idle -= new EventHandler(Application_Idle); } catch(Exception ex) { MessageBox.Show(ex.InnerException + ex.Data.ToString()); } }
1 回答
- 1 回答
- 0 关注
- 225 浏览
添加回答
举报
0/150
提交
取消