2015-03-05 2 views
0

Мне нужно закрыть приложение (C#), когда пользователь его не использует - допустим, когда нет события Click в любой форме программы (существует около 100 форм). Есть ли способ сделать это без обращения к клику даже в каждой форме приложения. (У меня поток работает каждую минуту, где его можно проверить)? Спасибо заранее!Как проверить, используется ли программа?

+0

@Lucas ответ хорош, но это также может помочь: https: //social.msdn.microsoft.com/Forums/en-US/0c6e496b-44d3-49ee-9ef0-282f079e363b/automatic-application-shutdown –

+0

Что делать, если фоновый процесс запущен? –

+0

@ Eliasz проходят через [это] (http://www.codeproject.com/Articles/30345/Application-Idle) и [это] (http://www.codeproject.com/Articles/13756/Detecting-Application- Безделье) –

ответ

2

Вы можете подключиться к контуру сообщения приложения с помощью функции Application.AddMessageFilter. Написать сообщение фильтр, который проверяет все сообщения клики мыши и/или сообщения клавиатуры, или что-нибудь вы заинтересованы в

Например:.

public class DetectActivityMessageFilter : IMessageFilter 
{ 
    private const int WM_LBUTTONDOWN = 0x0201; 

    public bool PreFilterMessage(ref Message m) 
    { 
     if (m.Msg == WM_LBUTTONDOWN) 
     { 
      // The left mouse button was pressed 
     } 

     return false; 
    } 
}