【问题标题】:How to simulate pressing Fn+F6?如何模拟按 Fn+F6?
【发布时间】:2013-07-21 13:38:12
【问题描述】:

方法 SendKeys.Send 不允许按 Fn 键,该键存在于笔记本电脑的键盘上。如何在 C# 中模拟按下此键?

【问题讨论】:

  • 我很确定你不能。我相信fn 键是硬件支持的。

标签: c# keyboard sendkeys


【解决方案1】:

你不能,你也不需要。就键盘电路而言,Fn 键仅作为键存在。

当键码被发送到操作系统时,功能键看起来就像是普通键盘上的普通键一样。操作系统甚至不知道Fn 键的存在,这是由笔记本电脑中的特殊键盘电路处理的。

要在笔记本电脑上按下功能键,只需像在普通键盘上一样发送功能键的常规键代码。

如果有任何其他使用Fn 键的组合键,它们要么有自己的键码,要么根本无法发送,因为它们是由笔记本电脑而不是操作系统处理的。

【讨论】:

    【解决方案2】:

    我从未尝试过,但我认为你可以用另一种方式做到这一点。在textbox 上创建keydown 事件并在运行时按fn 键,然后检查codekeyValue 返回的内容。然后在 SendKeys.Send 方法中使用 value

    【讨论】:

    • 什么时候 KeyDown 甚至不触发?
    • 我试过这个和 e.KeyCode == 255。如果尝试通过键盘钩子从 C++ 获取扫描码,那么扫描码是 113。我尝试通过 SendInput (WinAPI) 发送这个扫描码,但是什么都没有发生...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多