不确定为什么AHK脚本无法正常工作

时间:2020-10-07 19:59:52

标签: autohotkey

我经常使用Chrome书签,而且我也经常不得不经常向人们发送屏幕摘要,但是我不希望我的所有书签都显示出来(有些是私人的)。我知道我可以将它们添加到“其他书签”文件夹中,但是很容易访问。我已经进行了一段时间的操作是点击书签快捷方式(CTRL + SHIFT + B),然后是剪切工具(WIN + SHIFT + S),获取我的屏幕截图,然后放回书签(CTRL + SHIFT + B) 。最终,我决定咬一下子弹并花一些时间使其自动化,以便按CTRL + SHIFT + S可以关闭书签栏,而放开鼠标(在剪下剪辑后)将其放回原处。这是我想出的:

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

尽管前半部分可以正常工作(书签消失,剪裁工具打开),横条也没有返回。我已经尝试了许多事情,包括设置计时器,等待空格键而不是鼠标按钮,而只有在准备好时才点击鼠标。我也进行了测试,放开鼠标按钮后立即手动按下键确实可以重新打开书签。

任何人都可以解释为什么会这样吗?我真的很感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

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

第二个问题是,当屏幕截图窗口处于活动状态时,您正在发送输入以再次显示书签。您将要等到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 (在大多数键盘布局上)。