Обнаружение незанятых пользователей в Winforms

Я хотел бы приостановить свою программу, если пользователь неактивен в течение 5 минут. Неактивным я имею в виду, что за это время не нажал их мышь или клавиатуру (в том числе и вне программы!). Любые начальные точки?

В течение таймера вы можете p / вызвать GetLastInputInfo() который будет возвращать число ms, поскольку вход был обнаружен у пользователя, во всех процессах текущего сеанса.

Этот вопрос очень похож на старый вопрос:

.NET эквивалент для GetLastInputInfo?

На что ссылается хорошая статья, описывающая некоторые разные варианты в C #:

http://www.codeproject.com/KB/cs/uim.aspx

Если вы не возражаете использовать P / Invoke и ограничены работой в системах Windows, то использование P / Invoke для вызова GetLastInputInfo (), вероятно, является самым простым методом выполнения того, что вы хотите.

вы можете переопределить WndProc и искать сообщение WM_IDLE

Некоторое время назад я использовал библиотеку GMA.UserActivityMonitor для достижения этой цели.

Похоже, я нашел решение для вашей проблемы, посмотрите:

Как обнаружить приложение Winforms было неактивным в течение определенного времени и ответа user34660 ,

Для вашего приложения необходимо изменить:

 const int MinuteMicroseconds = 60000; 

в

 const int MinuteMicroseconds = 300000; 

Это просто время, но в мс.

Работает хорошо для моего приложения Windows Forms.

  • Как вы автоматически изменяете размер столбцов в элементе управления DataGridView? И разрешить пользователю изменять размеры столбцов в той же сетке?
  • Как установить выбранный элемент в comboBox для соответствия моей строке с помощью C #?
  • Получить текущий путь к папке
  • Custom Caret для WinForms TextBox
  • Воспроизведение двух звуков одновременно
  • Захват нескольких ключевых нажатий в C #
  • Как удвоить буфер панели в C #?
  • Добавьте несколько изображений в тело электронной почты (inline) с помощью приложения windows c #
  • LINQ объединяет две таблицы данных
  • TabControl с кнопкой Close и Add
  • Фильтрация DataGridView без изменения источника данных
  • Давайте будем гением компьютера.