首页 > 解决方案 > 不确定为什么 AHK 脚本没有按预期工作

问题描述

我经常使用 chrome 书签,而且我也经常不得不经常向人们发送屏幕片段,但是我不希望我所有的书签都显示出来(有些是私人的)。我知道我可以将它们添加到其他书签文件夹,但更容易访问。我一直在做的是点击书签快捷方式(CTRL+SHIFT+B),然后是截图工具(WIN+SHIFT+S),截取我的截图,然后把书签放回去(CTRL+SHIFT+B) . 最终我决定硬着头皮花一些时间自动化它,这样按 CTRL+SHIFT+S 会关闭书签栏,放开鼠标(在剪裁后)会把它放回去。这就是我想出的:

~#+s:: Send, ^+B
KeyWait, LButton, D
Send, ^+B
return

尽管前半部分有效(书签消失,剪切工具打开),但酒吧永远不会返回。我尝试了很多事情,包括设置计时器,等待空格键而不是鼠标按钮,我只有在准备好时才会点击。我也测试过,松开鼠标按钮后立即手动按下键确实重新打开了书签。

谁能解释为什么会这样?我真的很感激任何帮助!

标签: autohotkey

解决方案


第一个问题是您将第一个命令与热键定义放在同一行。
这将创建一个单行热键,下面的其余代码将不会运行。

第二个问题是您在截屏窗口处于活动状态时再次发送输入以显示书签。您将要等到 chrome 再次处于活动状态。
这有效:

#IfWinActive, ahk_exe chrome.exe
~#+s:: 
    SendInput, ^+b
    Sleep, 2000
    WinWaitActive, ahk_exe chrome.exe
    SendInput, ^+b
return
#IfWinActive

稍作睡眠,以便屏幕截图窗口有时间打开,并且还添加了#IfWinActive,因为我假设您只希望该热键在您使用 chrome 时处于活动状态。
也切换到SendInput并制作b小写。将其设为大写会发送Shift+ B(在大多数键盘布局上)。


推荐阅读