我确实挂了一些程序的键盘。现在我需要更改发送到进程的密钥消息。
例如:从小写到大写和相反。
我该怎么做?
最佳答案
假设您的函数原型如下所示:LRESULT CALLBACK WndProc( HWND hWnd, UING uMsg, WPARAM wParam, LPARAM lParam )
,
你信的价值在wParam内。假设是纯ASCII键盘输入,则可以使用以下命令:
short newKeyCode = (char)wParam;
if (uMsg == WM_CHAR || uMsg == WM_SYSCHAR)
if (newKeyCode - 'a' < 26) {
newKeyCode = newKeyCode - 'a' + 'A';
} else {
newKeyCode = newKeyCode - 'A' + 'a';
}
当然,如果您在2000以后的Windows系统上(因此在NT体系结构上运行),wParam将是一个Unicode值(和UTF-16一样,这是Windows的惯例),因此您的程序可能必须修改它才能使它进入一个良好的状态,但否则这应该是您所需要的。