Есть ли 64-битный эквивалент GetLastInputInfo / LASTINPUTINFO? - PullRequest
0 голосов
/ 27 сентября 2018

Мы используем GetLastInputInfo и вычисляем разницу от результата GetTickCount64 для определения простоя.Однако счетчик тиков, возвращаемый GetLastInputInfo, записывается в член dwTime объекта LASTINPUTINFO, который является DWORD и, следовательно, 32-разрядным целым числом без знака, с максимальным значением и его максимальным значением 4294967295, что эквивалентно ~ 49 дням.На машинах с временем простоя, превышающим это, это, конечно, приводит к тому, что функция сообщает о неверном значении.

Очевидно, что нет функции с именем GetLastInputInfo64, но, возможно, функция с другим именем?

1 Ответ

0 голосов
/ 23 апреля 2019

Существует обходной путь, который мы используем.

Используйте только результат GetLastInputInfo(), чтобы определить, изменился ли dwTick, не заботясь о том, насколько он изменился.

Делайте это периодически.

Когда тик изменился (значение не совпадает с тем, что было в предыдущем чтении), запустите собственный таймер и используйте его, чтобы определить, когда вход стал бездействующим, например, в течение 30 секунд.

При таком подходе вам никогда не придется иметь дело с переносами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...