Autohotkey 自动热键脚本随机失败?
我对自动热键还不熟悉,所以这可能是我最头疼的事情。我昨天把它放在一起,一整天都很好。如今,它无法在随机时间完全执行 我正在做的是强制Chrome使用系统打印对话框,然后只打印第一页Autohotkey 自动热键脚本随机失败?,autohotkey,Autohotkey,我对自动热键还不熟悉,所以这可能是我最头疼的事情。我昨天把它放在一起,一整天都很好。如今,它无法在随机时间完全执行 我正在做的是强制Chrome使用系统打印对话框,然后只打印第一页 !NumpadDiv:: { Send ^P ; CTRL+SHIFT+p forces System Print Dialog WinWait, Print, , 2 ; Wait for Print Dialog to appear if ErrorLevel
!NumpadDiv::
{
Send ^P ; CTRL+SHIFT+p forces System Print Dialog
WinWait, Print, , 2 ; Wait for Print Dialog to appear
if ErrorLevel
{
MsgBox, WinWait timed out.
return
}
else
{
IfWinActive, Print ; Added to ensure Print window was active
{
SetKeyDelay, 300 ; Upped key delay. Thought this may help. It hasn't
Send {TAB 4} ; Tabs over to Page Range
Send 1 ; Print only first page
Send {Enter}
}
}
return
}
今天,脚本开始在随机时间失败。要么它不切换到页面范围,并将打印所有页面,要么它将切换到页面范围,输入1,然后不打印。在这两种情况下,它都会触发我的电脑的错误声音。如果您能提供任何帮助,我将不胜感激,因为这一功能昨天一整天都在正常工作。我也想在Lotus Notes中做类似的事情。根据MCL的建议,我重温了clangford1174的代码,如下所示。它在我的Win7机器上工作
!NumpadDiv::
{
Send ^P ; CTRL+SHIFT+p forces System Print Dialog
WinWait, Print, , 2 ; Wait for Print Dialog to appear
if ErrorLevel
{
MsgBox, WinWait timed out.
return
}
else
{
ControlSetText, Edit4, 1
Send {Enter}
}
return
}
顺便说一句,这个关于用AHK选择打印机的线程也是相关的。
如果您可以直接访问窗口控件,请不要发送钥匙。请尝试以下操作,而不是切换和发送:
ControlSetText,Edit4,1
。也许,该控件有另一个名称,您可以通过window spy查看。另外,IfWinActive
是绝对多余的,因为WinWait
保证无论如何。MCL-我想你应该提出一个答案。@MCL谢谢你的建议。就像我说的,这仍然是非常新的,所以我会给它一个尝试和测试out@MCLControlSetText完成了任务。它看起来一直在工作。谢谢你的帮助!我还删除了冗余的WinWait,我知道这可能不会有任何帮助。请将您的解决方案作为答案发布并接受它。