【问题标题】:Keyboard hook: change the key code键盘挂钩:更改键码
【发布时间】:2011-04-01 14:33:51
【问题描述】:

我确实钩住了某个进程的键盘。现在我需要更改发送给进程的关键消息。

例如:从小写到大写并相反。

我该怎么做?

【问题讨论】:

  • 什么平台?什么API?有代码吗?你尝试过什么失败了?
  • 明年还有个愚人节 :)
  • 平台 Windows 。 API 窗口也是如此。我用 C 写的。不是 C++

标签: c windows keyboard-hook


【解决方案1】:

假设你的函数原型如下: 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 约定一样),所以您的程序可能有摆弄它以使其进入良好状态,否则这应该是您所需要的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    • 2017-07-18
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 2015-09-22
    相关资源
    最近更新 更多