广告:
信号屏蔽器:守护你的数字生活,为你带来宁静与专注
监控游戏按键操作,打印出按下各个键盘按钮,以及停留时间,用于操作复刻(例如游戏定制游戏刷图脚本)
效果如图
这样就解决了之前写搬砖脚本需要调试很长时间达到可用结果
下面直接上代码
#include <iostream>
#include <windows.h>
#include <chrono>
using namespace std;
using namespace chrono;
int main() {
// 获取控制台窗口句柄
HWND consoleWindow = GetConsoleWindow();
// 获取当前进程ID
DWORD dwMyID = GetCurrentProcessId();
// 设置键盘钩子
HHOOK keyboardHook = SetWindowsHookEx(WH_KEYBOARD_LL, [](int nCode, WPARAM wParam, LPARAM lParam) -> LRESULT {
if (nCode == HC_ACTION && (wParam == WM_KEYDOWN || wParam == WM_SYSKEYDOWN)) {
KBDLLHOOKSTRUCT* pKeyStruct = reinterpret_cast<KBDLLHOOKSTRUCT*>(lParam);
// 记录按键字母
char key = static_cast<char>(pKeyStruct->vkCode);
cout << "Key: " << key << endl;
static auto lastTime = high_resolution_clock::now();
auto currentTime = high_resolution_clock::now();
auto duration = duration_cast<milliseconds>(currentTime - lastTime).count();
// 记录两次按键之间的毫秒值
cout << "Milliseconds since last key: " << duration << " ms" << endl;
lastTime = currentTime;
}
// 继续传递消息给下一个钩子
return CallNextHookEx(NULL, nCode, wParam, lParam);
}, GetModuleHandle(NULL), 0);
// 消息循环
MSG msg;
while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
// 卸载钩子
UnhookWindowsHookEx(keyboardHook);
return 0;
}
这样再用python复刻一下操作,配上一个循环,加一些图像处理,起飞!
更多问题请咨询 sz-sstx.com
源自:顺盛通信科技