C#钥匙钩问题

C#钥匙钩问题,c#,keyhook,C#,Keyhook,我从中复制了以下代码 它工作得很好,但当我做一点改变时: lParam.vkCode ++; or lParam.scanCode ++; 就在return CallNextHookEx(…)之前,原始键仍然出现在记事本中。 如果我按“a”,我希望记事本上的字母是“b”,但它仍然是“a”。 “lParam”似乎没有改变。无法理解为什么?lParam.vkCode的值不是一个简单的int类型,因此我认为不能以这种方式递增它 一旦你有了你的关键对象 Keys key = (Keys)lParam.

我从中复制了以下代码

它工作得很好,但当我做一点改变时:

lParam.vkCode ++;
or
lParam.scanCode ++;
就在return CallNextHookEx(…)之前,原始键仍然出现在记事本中。 如果我按“a”,我希望记事本上的字母是“b”,但它仍然是“a”。
“lParam”似乎没有改变。无法理解为什么?

lParam.vkCode的值不是一个简单的int类型,因此我认为不能以这种方式递增它

一旦你有了你的关键对象

Keys key = (Keys)lParam.vkCode;
您应该能够做一些事情,比如获取字节值并将其递增

int keyVal = Encoding.ASCII.GetByte(key.KeyCode);
keyVal++;
我认为vkCode不是实际的键代码,但可能是一个指针或其他东西,通过将其分配给变量key.Net将该值拉入,并使用您的cast将其转换为托管键类型

当然我可能错了

int keyVal = Encoding.ASCII.GetByte(key.KeyCode);
keyVal++;