代码之家  ›  专栏  ›  技术社区  ›  Sauleil

console.readkey()无法捕获特定组合[shift+up]

  •  0
  • Sauleil  · 技术社区  · 8 年前

    这似乎是一个简单的案例,但出于某种原因, Console.ReadKey() 当您使用shift修饰符时,不能在控制台中使用箭头。看起来微软决定重写它来做选择。

    我想知道是否可以改变 ReadKey() ?我已经阅读了文档,但除了拦截布尔,它似乎不存在。什么都没提。

    另外,我还研究了一些win32函数,比如 GetKeyState ,但这意味着我不能混合 Read键() 因为我需要做一些轮询和线程阻塞。

    所以,我应该做一个旧的win32循环并手动处理所有消息吗?还是有更简单的解决方案?

    谢谢。

    1 回复  |  直到 8 年前
        1
  •  0
  •   Sauleil    8 年前

    经过几个小时的搜索,我偶然发现了这个github项目:

    https://github.com/michaelnoonan/inputsimulator

    安装后,开始摆弄它,我发现输入终于工作了[Shift + Leave]。但选择仍在出现。我开始在控制台中查找禁用选择。我没有在api中找到任何东西。但我记得我的控制台窗口默认有“快速编辑”标志。

    所以,在查看其他标志之后,我在文本选择组中找到了两个有趣的标志。通过取消对这两个标志的检查,窗口键覆盖被删除,并且 ReadKey 可以正常工作。

    推荐文章