Сбой GetLastInputInfo в аддоне узла

Это мой первый аддон, который я пишу для узла, и я не очень хорошо знаю C / C ++, так что держитесь за меня.

Моя цель — создать модуль, обеспечивающий доступ к последнему времени взаимодействия с пользователем (приложение на стороне клиента, а не приложение на сервере). Windows API имеет функцию под названием GetLastInputInfo (https://msdn.microsoft.com/en-us/library/windows/desktop/ms646302(v=vs.85).aspx). Ниже приведен код, который должен загрузить информацию о времени в last_input и возвращает 0/1 для неудачи / успеха. К сожалению, это терпит неудачу каждый раз.

Код дополнения:

#include <node.h>
#include <v8.h>

#define WINDOWS_LEAN_AND_MEAN
#include <windows.h>

using namespace v8;

Handle<Value> TimeSinceInput(const Arguments& args) {
HandleScope scope;

LASTINPUTINFO last_input;
if (::GetLastInputInfo(&last_input)) {
return scope.Close(String::New("Success!"));
}
else {
return scope.Close(String::New("Failed for some reason!"));
}
}

void init(Handle<Object> exports) {
exports->Set(String::NewSymbol("time_since_input"), FunctionTemplate::New(TimeSinceInput)->GetFunction());
}

NODE_MODULE(addon, init)

Какие-нибудь мысли?

0

Решение

Структура LASTINPUTINFO имеет член cbSize, который должен быть инициализирован:

Размер структуры в байтах. Этот член должен быть установлен в sizeof (LASTINPUTINFO).

Это распространенный способ управления версиями в Windows API.

2

Другие решения


По вопросам рекламы [email protected]