【问题标题】:Virtual Keyboard commands虚拟键盘命令
【发布时间】:2013-08-01 03:26:10
【问题描述】:

我只是想知道这些虚拟键盘命令之间的区别是什么:

KEYEVENTF_EXTENDEDKEY 和 KEYEVENTF_KEYUP 是。

我看过的所有地方都只是根据整数给我一个描述,而不是什么,但我只是想知道它们每个人的作用。

【问题讨论】:

  • KEYEVENTF_KEYUP 是指松开按键的事件。例如按住一个键触发KEYEVENTF_KEYDOWN,释放它触发KEYEVENTF_KEYUP。但是我不确定KEYEVENTF_EXTENDEDKEY 做了什么

标签: vb.net winapi keyboard


【解决方案1】:

您已标记问题 VB.NET,但这些实际上与 VB.NET 毫无关系。它们是在 Windows 头文件中定义的常量,用于 Win32 API 函数。

就差异而言,您无法通过查看它们的值来判断。各个值并不是特别重要,这就是使用命名标识符的原因。重要的是它们的使用位置以及这些函数的文档告诉您它们的含义。

第一个,KEYEVENTF_EXTENDEDKEY,与KEYBDINPUT 结构(与例如SendInput 函数一起使用)一起使用,以传递有关合成键盘输入的信息。如果使用此标志,则意味着扫描码应被解释为扩展密钥。从技术上讲,这意味着扫描码前面有一个值为 224 的前缀字节(&HE0 在十六进制表示法中)。

第二个,KEYEVENTF_KEYUP,是可用于此结构的另一个标志。这意味着键正在释放(向上),而不是按下(向下)。

有可用的键盘输入的一般概述here on MSDN。它更详细地解释了虚拟键码是什么,扩展键是什么等。

【讨论】:

  • 所以要输入字母,我必须先输入KEYEVENTF_KEYDOWN,然后再输入KEYVENTF_KEYUP?
  • @bbesase 是的,您将调用SendInput 函数两次,一次使用KEYEVENTF_KEYDOWN,第二次使用KEYVENTF_KEYUP。
  • 再说一次,我不确定为什么在 VB.NET 中需要它。它已经被SendKeys.Send 方法包装了。
猜你喜欢
  • 1970-01-01
  • 2013-01-03
  • 2015-01-02
  • 2013-04-02
  • 1970-01-01
  • 1970-01-01
  • 2012-01-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多