上一个问题: 我正在玩一个基本上是 Hangman 的在线 Flash 游戏。输入字母的唯一方法是在游戏中的屏幕键盘上单击它们。我想编写某种宏,将键盘按下与鼠标位置映射,这样我就可以在键盘上键入字母并让鼠标点击相应的屏幕键盘字母。我在戴尔笔记本电脑上运行 Windows 7。有没有办法做到这一点?有什么程序可以帮助解决这个问题吗?如果有帮助,我有一些 Java 编程经验。
更新:我正在使用 AutoHotKey 编写宏。这是我所拥有的:
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
LAlt & a::
IfWinExist Bearville - Mozilla Firefox
{
WinActivate
}
DllCall("mouse_event", "UInt", 0x01, "UInt", 460, "UInt", 560) ; move
DllCall("mouse_event", "UInt", 0x02) ; left button down
DllCall("mouse_event", "UInt", 0x04) ; left button up
sleep 250
DllCall("mouse_event", "UInt", 0x01, "UInt", -460, "UInt", -560) ; move
return
LAlt & b::
IfWinExist Bearville - Mozilla Firefox
{
WinActivate
}
DllCall("mouse_event", "UInt", 0x01, "UInt", 500, "UInt", 560) ; move
DllCall("mouse_event", "UInt", 0x02) ; left button down
DllCall("mouse_event", "UInt", 0x04) ; left button up
sleep 250
DllCall("mouse_event", "UInt", 0x01, "UInt", -500, "UInt", -560) ; move
return
等等。如果窗口未激活,请激活它。将指针从左上角移动到屏幕上字母的位置,鼠标左键上下,等待250毫秒(因为没有延迟导致点击不注册),然后将指针移回起始位置. 这适用于一个字母,但是如果我随后尝试输入另一个字母,则只要按下左 alt 键,窗口就会失去焦点。完成输入热键会使窗口激活,但指针似乎没有移动或单击,并且窗口再次失去焦点。我该如何解决?