笔记本m坏了,所以找个不常用的键当转移键,按下转移键时将其拦截,模拟按下我们需要的按键。我这里用了右alt做转移键:
//
// Created by 20557 on 2023/2/27.
//
#include <windows.h>
#include <winuser.h>
#include <iostream>
bool flag = TRUE;
LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam) {
if (nCode == HC_ACTION) {
KBDLLHOOKSTRUCT* p = (KBDLLHOOKSTRUCT*)lParam;
if (p->vkCode == 165) { //右边的alt是165
if (flag){
keybd_event('M', 0, 0, 0); // Press the 'A' key
keybd_event('M', 0, KEYEVENTF_KEYUP, 0);
flag = !flag;
}else{
flag = TRUE;
}
return 1;
}
}
return CallNextHookEx(NULL, nCode, wParam, lParam);
}
int main() {
HHOOK hook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyboardProc, GetModuleHandle(NULL), 0);
MSG msg;
while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
UnhookWindowsHookEx(hook);
return 0;
}