我正在开发一个联网系统(用C#),在其中一台计算机上,我通过低级钩子接收键盘输入,然后将输入传输到必须注入的另一台计算机。
钩子在KeyEventArgs类中传递键盘输入。要将其注入到目标计算机中,我需要在SendInput中使用KEYBDINPUT结构。
在KeyEventArgs.KeyCode或KeyValue与KEYBDINPUT.wVk和wScan之间似乎并不容易匹配。我还尝试了MapVirtualKey的一些组合。
在座的任何人都可以帮助解决这两种情况吗?
发布于 2012-04-30 16:29:20
您可能想看看最近的答案here,其中我建议使用InputSimulator作为其他低级工作的替代方案。这将直接使用Win32 SendInput接口。
它使用VirtualKeyCode,所以既然您有KeyEventArgs,那么您可以只使用KeyValue属性:
InputSimulator.SimulateKeyPress(keyEventArgs.KeyValue);
如果您只有System.Key,则可以转换为VirtualKey
http://msdn.microsoft.com/en-us/library/system.windows.input.keyinterop.virtualkeyfromkey.aspx
How can I convert 'System.Windows.Input.Key' to 'System.Windows.Forms.Keys'?
https://stackoverflow.com/questions/4405151
复制相似问题