我确实挂了一些进程的键盘。现在我需要更改发送到流程的密钥消息。
例如:从小写到大写,相反。
我该怎么做?
答案 0 :(得分:0)
假设您的函数原型如下:
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惯例),所以你的程序可能有为了使它成为一个好的状态而摆弄它,否则这应该是你所需要的全部。