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