知道如何使用异步键输入,但仍然无法将输入发送到应用程序,当前未打开哪个窗口 请指教
尝试过异步键输入,它可以工作,但我需要最小化当前应用程序
QT 和 C# 对此有很多选择,但在本机 Win32 C++ 中,我认为,可能有两种方法可以做到这一点。
以合理的间隔使用计时器似乎是更好的选择,因为线程可能会消耗不必要的 cpu 量。
1。使用定时器的例子:
void CALLBACK MonitorKey(){
// Monitor Key state here
}
然后通过将此代码放入 main 或 WinMain 中来触发计时器
SetTimer(NULL,0,100,(TIMERPROC)MonitorKey); // 100 means the function will be triggered each 100ms
2。另一个使用线程的例子:
DWORD WINAPI MonitorKey(void*arg){
// Monitor Key state here
}
然后像这样从 main 或 WinMain 启动线程。
CreateThread(NULL,0,MonitorKey,NULL,0,NULL);
最后我想重申,第一种方法可能比第二种方法更好更安全,原因在上面已经描述过。