Проверка активности

356
07 февраля 2017, 18:17

Пишу программу для учета рабочего времени.

  1. Нужна проверка того, что пользователь не просто включил программу и сидит бездельничает, а действительно осуществляет работу. В голове вариант проверять мышь с клавиатурой и при отсутствии действий n минут, включать таймер, который считает кол-во потраченного в пустую времени.

  2. Пользователь ведь может пользоваться соц сетями, играть в игры и это будет считаться как рабочее время. Следовательно в голову пришла мысль, что можно составить список из "рабочих программ" и время, проведенное в других, не учитывать как отработанное.

Сама суть вопроса - какими средствами это реализовать? Примеры может какие есть, или статьи. К сожалению, не гуру C#, но диплом писать как-то нужно :)

Answer 1

Все через WinAPI. Активное окно узнать можно примерно так:

[ DllImport("user32.dll") ]
static extern int GetForegroundWindow();
[ DllImport("user32.dll") ]
static extern int GetWindowText(int hWnd, StringBuilder text, int count);
private void GetActiveWindow()
{
                      const int nChars = 256;
        int handle = 0;
        StringBuilder Buff = new StringBuilder(nChars);
        handle = GetForegroundWindow();
        if ( GetWindowText(handle, Buff, nChars) > 0 )
        {
            WindowLabel.Text = Buff.ToString();
            IDWindowLabel.Text = handle.ToString();
        }
}

Клавиатуру можно как-то так:

https://blogs.msdn.microsoft.com/dmandreev/2010/11/29/windows-c/

Дальше уж сами.

READ ALSO
Имеет ли смысл использовать голый ASP.NET? [требует правки]

Имеет ли смысл использовать голый ASP.NET? [требует правки]

Имеет ли смысл использовать голый ASPNET? Есть ли в этом какая-нибудь необходимость когда-нибудь?

346
Почему при передаче параметра в массиве POST, условие не срабатывает?

Почему при передаче параметра в массиве POST, условие не срабатывает?

Ничего не отображается, я уже облегчал, убрал, то что идёт после && и всё рано не работает, почему у меня постоянно не работают такие простые...

409
Не могу получить переменные с двух foreach

Не могу получить переменные с двух foreach

Добрый день! Помогите начинающему пожалуйста! Получаю через api ЯндексДиск список папок:

412