假设我想在特定持续时间内自动按住按键
h
,例如 10 秒。
我的第一个想法是
AutoHotKey
,然后我尝试了。
#Requires AutoHotkey v2.0
*s::
{
Send "{h down}"
Sleep 10000
Send "{h up}"
}
它有效。但它点击的是
h
,而不是按住它。我查看了 AutoHotKey 论坛,没有人知道如何使其自动,最好的解决方案是按住扳机,这达不到目的。
然后我去了
PyAutoGUI
,尝试制定一个简单的解决方案,例如
import pyautogui
import time
pyautogui.keyDown('h')
time.sleep(10)
pyautogui.keyUp('h')
不知何故,它只点击
h
,而不是按住它。
我尝试了 AutoHotKey 和 PyAutoGUI,它们只能点击按键,而不能按住它。
这是 AHK 的标准行为。
请参阅重复或按住某个键
要像使用真实键盘一样模拟重复按键,您必须使用循环或计时器。
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
#SingleInstance force
settimer, fire, 50
settimer, fire, off
F2::
send h
sleep 500
settimer, fire, on
keywait, F2
settimer, fire, off
return
fire:
send h
return
可能有2个问题:
1。程序是这样的
制作您的游戏的游戏引擎可能不关心获得 按住事件。通常他们会检查钥匙是否处于按下状态。
2。有虚拟键盘预防系统
这不太可能,但可以解释为什么它不成立。
指定按住操作的上下文将帮助我们了解问题所在并重新创建它。