我正在实施自己的PSHostRawUserInterface版本。我想实施PSHostRawUserInterface.ReadKey(),因此我需要将System.Management.Automation.Host.KeyInfo.VirtualKeyCode映射到System.ConsoleKeyInfo.Key。
我可以将System.ConsoleKeyInfo.Key转换为int,我只是不知道它是否真的是VirtualKeyCode。
答案 0 :(得分:1)
我想我在一段时间后对此进行了测试,答案是“是的,但是。”请参阅下面的注意事项。您可以通过编写一个输出所有ConsoleKey值的整数值的程序来测试该答案,并将它们与Virtual Key Codes进行比较。
但请注意,ConsoleKeyInfo.Key
只是关键,没有修饰符。虚拟键代码是一个位图值,包含修饰符(Shift,Control,Alt)。使用ConsoleKeyInfo
时,修饰符存储在Modifiers
属性中。
或者,您可以将ConsoleKey
枚举的值与Keys枚举的值进行比较,具体说明这些值对应于虚拟键码。