I've written a program to get keyboard hook. What I want is, when a user presses Enter, the typed text, for example: "hello world", which I stored in exportMsg, should be returned from the function.
I want to make a dll and export exportMsg.
Here is my code. Thanks in advance.
#include <Windows.h>
#include <stdio.h>
#include <iostream>
LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam);
HHOOK keyboardHook;
HWND prevWindow;
std::string exportMsg="";
int main()
{
keyboardHook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyboardProc, 0, 0);
MSG msg{ 0 };
while (GetMessage(&msg, NULL, 0, 0) != 0);
UnhookWindowsHookEx(keyboardHook);
return 0;
}
LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
wchar_t title[256];
HWND fwindow = GetForegroundWindow();
PKBDLLHOOKSTRUCT key = (PKBDLLHOOKSTRUCT)lParam;
//a key was pressed
if (wParam == WM_KEYDOWN && nCode == HC_ACTION )
{
//return if enter pressed
if (key->vkCode == '\r')
{
std::cout << exportMsg << std::endl;
}
else
{
exportMsg.push_back(key->vkCode);
}
}
return CallNextHookEx(keyboardHook, nCode, wParam, lParam);
}
As
std::cindoesn't work in Unity, I needed to use Keyboard Hook to scan qrCode through aQR Code Scanner Machineand send the scanned string to theUnity.This algorithm capture the key strokes and returns the string when Enter is pressed.
My DLL code looks like this:
Header file:
Source file:
dllmain: