Сведения о вопросе

FELL

11:45, 23rd August, 2020

Теги

.net   windows   user-interface   tray    

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

Просмотров: 473   Ответов: 3

Существует некоторая документация в интернете, которая показывает, что Windows изменяет поведение команды NotifyIcon.BalloonTipShown, если пользователь в настоящее время простаивает, и это определяется проверкой событий клавиатуры и мыши . В настоящее время я работаю над приложением, которое проводит большую часть своего времени в системном трее, но время от времени всплывает несколько всплывающих подсказок, и я хотел бы, чтобы пользователь не пропустил ни одного из них, если они в настоящее время находятся вдали от системы. Поскольку любые отображаемые в настоящее время подсказки воздушного шара уничтожаются, если отображается новый, я хочу отложить их отображение, если пользователь отсутствует.

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



  Сведения об ответе

SKY

00:40, 19th August, 2020

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

using System.Runtime.InteropServices;

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

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


  Сведения об ответе

davran

18:45, 5th August, 2020

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

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

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

См. раздел обнаружение времени простоя с помощью крючков мыши и клавиатуры


  Сведения об ответе

Chhiki

08:54, 12th August, 2020

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться