gpt4 book ai didi

delphi - 如何检测按键被按下的时间?

转载 作者:行者123 更新时间:2023-12-03 18:23:06 24 4
gpt4 key购买 nike

我正在寻找一种方法来检测 Delphi 项目中按键按下的时间并警告用户。

我正在开发一个聊天程序,需要查看该人是否按住某个字母(例如 W 键)来向该聊天框发送垃圾邮件。我将给出在 Delphi 7 中尝试执行的示例:

//Looking up if key in use and held for lets say 20 seconds
if (GetAsyncKeyState(Byte(VkKeyScan('W'))) shl 20) <> 0 then
begin
ShowMessage('W Key Held down too long!');
end;

不过,我不确定 GetAsyncKeyState 是否会向我提供该信息。如果没有,什么会?

最佳答案

Windows 不会报告按住某个键的持续时间,仅报告按住的键会重复相同的 WM_KEY... 消息。您必须自己手动跟踪持续时间。当您检测到 wParam 位 30 设置为 1 的 WM_KEYDOWN 消息时,如果您尚未跟踪该键,请开始跟踪它并用它存储当前系统/刻度,否则获取当前系统/滴答时间,计算持续时间,并采取相应措施。当您收到 WM_KEYUP 消息时,如果您正在跟踪该按键,请停止跟踪该按键。

关于delphi - 如何检测按键被按下的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12973296/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com