Я играл с глобальным хуком клавиатуры с использованием C ++, и когда хук работает, ввод с клавиатуры крайне медленный. Я даже ничего не делаю с крючком, так как я только играю с ним, чтобы узнать о крючках. Мне интересно, что-то не так с моим кодом или это нормально для глобальных перехватов клавиатуры?
Вот мой код:
Файл DLL
#include<Windows.h>
#include<stdio.h>
#include "keyDLL.h"
using namespace std;
LRESULT CALLBACK HookProcedure(int code, WPARAM wParam, LPARAM lParam)
{
return CallNextHookEx(0, code, wParam, lParam);
}
Заголовочный файл DLL
#include "windows.h"
extern "C" __declspec(dllexport) LRESULT CALLBACK HookProcedure(int code, WPARAM wParam, LPARAM lParam);
EXE-файл
#include <iostream>
#include <cstdlib>
#include "windows.h"
using namespace std;
static HHOOK hhandle;
static HMODULE dllHandle;
HOOKPROC hookProcAddress;
int main()
{
dllHandle = LoadLibrary(TEXT("C:\\logger\\keyDLL\\Debug\\keyDLL.dll"));
hookProcAddress = (HOOKPROC)GetProcAddress(dllHandle, "_HookProcedure@12");
hhandle = SetWindowsHookEx(WH_KEYBOARD_LL, hookProcAddress, dllHandle, 0);
Sleep(INFINITE);
}
Как вы можете видеть, все, что я делаю с этим хуком, это CallNextHookEx, так что вообще ничего. В результате я могу напечатать целое предложение, и только первые два слова появятся на экране, когда я закончу, а остальным понадобится несколько секунд, чтобы наверстать упущенное.
Задача ещё не решена.