我需要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,我怎麼解釋它不應該是,它代表了輸入文件夾名稱中的字符之間的時間。一旦這個時間通過,腳本應該執行下一個命令。字符之間有足夠的時間等待,直到我輸入下一個 –
即使沒有輸入命令,該腳本也不起作用。到目前爲止,它完成了我使用鼠標所做的一切,但是當我點擊保存時說:找不到桌面文件。問題在於,左鍵單擊時,窗口中的焦點將丟失,文件夾的名稱將無法識別。 –