我需要Firefox在保存文件的另存为对话框中始终打开桌面,因此我可以在桌面上输入文件夹的名称并将文件保存在我想要的位置。这将是一种简单且非常有效的分组下载文件的方式。问题在于Firefox会在另存为对话窗口中打开最后一个保存文件夹,并且我无法通过合理的步骤执行此操作。若要桌面会自动在保存的对话,我能想到的最好的就是这个AutoHotkey的脚本打开了,我与它的问题:Autohotkey脚本下载到计算机上的特定文件夹
!+^s::
MouseMove, %A_CaretX%, %A_CaretY%
CoordMode, Mouse, Screen
MouseGetPos, xpos, ypos
SetMouseDelay, 2
MouseMove,445,46
Click Left
Send,Desktop
Send,{Enter}
MouseMove, %xpos%, %ypos%
Click Left
CoordMode, Mouse, Screen
MouseGetPos, xpos, ypos
SetMouseDelay, 2
MouseMove,445,46
Click Left
MouseMove,%xpos%, %ypos%
Click Left
Input, L, V L1
Loop {
Input, L, V L1 T1.4
If (ErrorLevel = "Timeout")
Break
}
Send,^{Down}
Send,{Enter}
MouseClick,Left,720,473
MouseClick,Left,720,473
return
与该脚本的问题是输入命令 - 它不等待我输入文件夹的名称,但立即执行以下命令。
编辑:脚本现在完全正常工作(感谢Forivin)。输入命令“Input,L,V L1”的附加行是脚本需要暂停并等待输入文件夹的名称。我使用了MouseClick命令和协调工作的监视器来确认对话框。使用Enter确认对话框(4次)出于某种原因无法在我的计算机上正确工作。编辑2:增加两行,为了使用下拉列表文件夹名称建议,所以整个文件夹名称不需要键入英寸
在T之后,你有'1.4'这是1和0.4秒。不是很低? *从AHK文档引用* =>'T:Timeout(例如T3)。在终止Input并将ErrorLevel设置为Timeout字之前等待的秒数。如果输入超时,OutputVar将被设置为用户有时间输入的任何文本。这个值可以是一个浮点数,如2.5。“#: – TechJS
嗨TechJS,我怎么解释它不应该是,它代表了输入文件夹名称中的字符之间的时间。一旦这个时间通过,脚本应该执行下一个命令。字符之间有足够的时间等待,直到我输入下一个 –
即使没有输入命令,该脚本也不起作用。到目前为止,它完成了我使用鼠标所做的一切,但是当我点击保存时说:找不到桌面文件。问题在于,左键单击时,窗口中的焦点将丢失,文件夹的名称将无法识别。 –