C# 按键关闭事件-冷却

C# 按键关闭事件-冷却,c#,keydown,C#,Keydown,我有一个带有keydown事件的项目,但是每次按键时,我都会单击该键,如果我点击它,它会等待半秒钟,然后快速启动该键。我需要它在没有冷却的情况下发送垃圾邮件,我能做什么?这称为键盘重复延迟,它是一个系统范围的属性,可以在控制面板的键盘部分设置。或者,您可以使用Win32 API函数,通过代码设置它,设置SPI_SETKEYBOARDDELAY标志 要从C#调用它,您可能需要定义一个p/Invoke签名,但幸运的是,PInvoke.net上已经有人为我们提供了 不要忘记您正在设置系统范围的设置!这

我有一个带有keydown事件的项目,但是每次按键时,我都会单击该键,如果我点击它,它会等待半秒钟,然后快速启动该键。我需要它在没有冷却的情况下发送垃圾邮件,我能做什么?

这称为键盘重复延迟,它是一个系统范围的属性,可以在控制面板的键盘部分设置。或者,您可以使用Win32 API函数,通过代码设置它,设置
SPI_SETKEYBOARDDELAY
标志

要从C#调用它,您可能需要定义一个p/Invoke签名,但幸运的是,PInvoke.net上已经有人为我们提供了


不要忘记您正在设置系统范围的设置!这可能需要管理员权限,而且在任何情况下,您都应该玩得很好,玩完后将其恢复到原始设置。

这称为键盘重复延迟,它是一个系统范围的属性,可以在控制面板的“键盘”部分中设置。或者,您可以使用Win32 API函数,通过代码设置它,设置
SPI_SETKEYBOARDDELAY
标志

要从C#调用它,您可能需要定义一个p/Invoke签名,但幸运的是,PInvoke.net上已经有人为我们提供了


不要忘记您正在设置系统范围的设置!这可能需要管理员权限,而且在任何情况下,您都应该玩得很好,玩完后将其恢复到原始设置。

您可以观看同一个密钥的keydown和keydup事件,而不是更改系统范围的设置,并且仍然有250ms的延迟(不要忘记,用户可以一次按下多个键,然后按不同的顺序释放)。在按下键时以所需频率启动计时器,并在按下键时停止计时器,然后将以前的按下键处理程序设置为计时器处理程序。

您可以观看同一个键的按下键和按下键事件,而不是更改系统范围的设置,并且仍然有250ms的延迟(不要忘记,用户可以一次按下多个键,然后按不同的顺序释放)。在按下键时以所需频率启动计时器,在按下键时停止计时器,并将以前的按下键处理程序设置为计时器处理程序。

尝试使用反应式扩展,并使用一个与时间相关的操作符(如Sample或Interval)来实现此处所需的功能

例如(就像指南一样,键入时不带VS)

Observable.FromEventPattern(这个“按键”)。示例(500)。。。。。

尝试使用反应式扩展,并使用一个与时间相关的操作符(如Sample或Interval)来实现此处所需的功能

作为示例(仅作为指南,键入时不带VS)

Observable.FromEventPattern(这个“按键”)。示例(500)。。。。。

这是Windows的工作方式。这是一个全局设置,而不是应用程序应该处理的问题。这是Windows的工作方式。这是一个全局设置,而不是应用程序应该处理的问题。
  Observable.FromEventPattern<KeyPressEventArgs>(this, "KeyPress").Sample(500).....