Есть ли способ проверить, не находится ли пользователь в настоящее время?


3

В Интернете есть документация, в которой показано, что Windows изменяет поведение команды NotifyIcon.BalloonTipShown, если пользователь в настоящее время не работает, и это detected by checking for keyboard and mouse events. В настоящее время я работаю над приложением, которое большую часть времени проводит в системном трее, но время от времени всплывает несколько подсказок с шарами, и я хотел бы, чтобы пользователь не пропускал ни одного из них, если они в настоящее время находятся вдали от система. Так как любые отображаемые в настоящее время подсказки шаров уничтожаются, если отображается новый, я хочу удержать их при отображении их, если пользователь ушел.

Таким образом, существует ли способ проверить, не находится ли пользователь в настоящий момент, если приложение сведено к минимуму на системный лоток?

4

Как насчет LASTINPUTINFO функции Win32?

using System.Runtime.InteropServices; 

[DllImport("User32.dll")] 
static extern bool GetLastInputInfo(ref LASTINPUTINFO plii); 

struct LASTINPUTINFO 
{ 
    public uint cbSize; 
    public uint dwTime; 
} 
  0

Право !!! Я бы просто добавил ссылку на LASTINPUTINFO с LayoutKind.Sequential: http://www.pinvoke.net/default.aspx/Structures/LASTINPUTINFO.html 12 июн. 092009-06-12 20:34:37


1

Управляемый код

Проверьте положение мыши каждый второй. Если есть новые сообщения для пользователя, держитесь за них, пока вы не обнаружите какое-либо движение с помощью мыши.

Неуправляемый код

См Detecting Idle Time with Mouse and Keyboard Hooks

  0

что касается клавиатуры ввод? 15 сен. 102010-09-15 17:22:54


0

Спасибо за ответы, я в конечном итоге происходит с функцией GetLastInputInfo как это довольно прямо вперед, чтобы реализовать в приложении, я работаю.