我确实挂了一些程序的键盘。现在我需要更改发送到进程的密钥消息。
例如:从小写到大写和相反。
我该怎么做?

最佳答案

假设您的函数原型如下所示:
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的惯例),因此您的程序可能必须修改它才能使它进入一个良好的状态,但否则这应该是您所需要的。

09-28 02:58