0

我正在实现我自己的PSHostRawUserInterface版本。我想实现PSHostRawUserInterface.ReadKey(),因此我需要将System.Management.Automation.Host.KeyInfo.VirtualKeyCode映射到System.ConsoleKeyInfo.Key

我可以将 System.ConsoleKeyInfo.Key 转换为 int,我只是不知道这是否真的是 VirtualKeyCode。

4

1 回答 1

2

我前段时间对此进行了测试,答案是“是的,但是”。请参阅下面的注意事项。您可以通过编写一个程序来测试该答案,该程序输出所有ConsoleKey值的整数值并将它们与Virtual Key Codes进行比较。

但请注意,这ConsoleKeyInfo.Key只是关键,没有修饰符。虚拟键码是包含修饰符(Shift、Control、Alt)的位图值。使用ConsoleKeyInfo,修饰符存储在Modifiers属性中。

或者,您可以将ConsoleKey枚举的值与Keys枚举的值进行比较,这明确表示这些值对应于虚拟键代码。

于 2012-11-12T04:34:05.660 回答