Vb.net 虚拟键盘命令

Vb.net 虚拟键盘命令,vb.net,winapi,keyboard,Vb.net,Winapi,Keyboard,我只是想知道这些键盘命令之间的区别是什么: KEYEVENTF_扩展键和KEYEVENTF_键是 在我看过的每一个地方,它都给了我一个基于整数的描述,而不是什么,但我只想知道它们各自的作用 您已经为问题VB.NET添加了标签,但是这些实际上与VB.NET没有任何关系。它们是在Windows头文件中定义的常量,用于Win32 API函数 至于差异,你不能通过观察它们的价值来判断。单个值并不特别重要,这就是使用命名标识符的原因。重要的是它们在哪里使用,以及这些函数的文档告诉您它们的含义 第一个是KE

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

KEYEVENTF_扩展键
KEYEVENTF_键


在我看过的每一个地方,它都给了我一个基于整数的描述,而不是什么,但我只想知道它们各自的作用

您已经为问题VB.NET添加了标签,但是这些实际上与VB.NET没有任何关系。它们是在Windows头文件中定义的常量,用于Win32 API函数

至于差异,你不能通过观察它们的价值来判断。单个值并不特别重要,这就是使用命名标识符的原因。重要的是它们在哪里使用,以及这些函数的文档告诉您它们的含义

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

第二个标记,
KEYEVENTF\u KEYUP
,是可用于此结构的另一个标记。这意味着按键被释放(向上),而不是被按下(向下)


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

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

至于差异,你不能通过观察它们的价值来判断。单个值并不特别重要,这就是使用命名标识符的原因。重要的是它们在哪里使用,以及这些函数的文档告诉您它们的含义

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

第二个标记,
KEYEVENTF\u KEYUP
,是可用于此结构的另一个标记。这意味着按键被释放(向上),而不是被按下(向下)


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

KEYEVENTF\u KEYUP
指释放按下的键的事件。例如,按住一个键会触发
KEYEVENTF\u KEYDOWN
,释放它会触发
KEYEVENTF\u keydup
。但是,我不确定
KEYEVENTF_-EXTENDEDKEY
是什么意思
KEYEVENTF_-KEYUP
指的是释放按键的事件。例如,按住一个键会触发
KEYEVENTF\u KEYDOWN
,释放它会触发
KEYEVENTF\u keydup
。但是我不确定
KEYEVENTF\u EXTENDEDKEY
做什么要做字母输入,我必须先
KEYEVENTF\u KEYDOWN
,然后马上做
KEYEVENTF\u keydup
?@bbesas是的,你会调用
SendInput
函数两次,一次是使用
KEYEVENTF\u KEYDOWN
,第二次是使用
KEYVENTF\u keydup
。不过,我还是不知道为什么在VB.NET中需要这个。它已经被SendKeys.Send方法包装好了。因此,要进行字母输入,我必须先执行
KEYEVENTF\u KEYDOWN
,然后立即执行
KEYVENTF\u keydup
?@bbesase是的,您将调用
SendInput
函数两次,一次是使用
KEYEVENTF\u KEYDOWN
,第二次是使用
KEYVENTF\u keydup
。不过,我还是不知道为什么在VB.NET中需要这个。它已被
SendKeys.Send
方法包装。