Я пытаюсь использовать Raw Input API с Qt, чтобы я мог записывать события клавиатуры и мыши.Однако этот код был неудачным.Я также новичок в Raw Input API.
Я попытался использовать отладчик и обнаружил, что WM_INPUT не выполняется.Что-то не так с Qt?
А также мой MainWin просто зависает.
main.cpp
#include <QApplication>
#include "MainWin.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWin mainw;
mainw.show();
RAWINPUTDEVICE rid[2];
rid[0].usUsagePage = 0x01;
rid[0].usUsage = 0x02;
rid[0].dwFlags = RIDEV_NOLEGACY;
rid[0].hwndTarget = 0;
rid[1].usUsagePage = 0x01;
rid[1].usUsage = 0x06;
rid[1].dwFlags = RIDEV_NOLEGACY;
rid[1].hwndTarget = 0;
if (RegisterRawInputDevices(rid, 2, sizeof(RAWINPUTDEVICE)) == false)
exit(-1);
return a.exec();
}
MainWin.cpp
#include "MainWin.h"
MainWin::MainWin()
{
}
MainWin::~MainWin()
{
}
bool MainWin::nativeEventF(const QByteArray & eventType, void * message, long * result)
{
MSG * msg = (MSG*)message;
switch (msg->message)
{
case WM_INPUT:
qDebug() << "in";
break;
}
return false;
}
Что-то не так в моей реализации?