2014-04-06 74 views
2

我是AutoIt的新手,並且有一個主要工作的程序。關閉Chrome窗口或更好的解決方案

目標:在瀏覽器中打開一個網站,然後在一段時間(1.5小時)後關閉它。

腳本:

;Open a command prompt to start chrome from. 
Run("C:\WINDOWS\system32\cmd.exe") 
WinWaitActive("C:\WINDOWS\system32\cmd.exe") 
send('"c:\Program Files\Google\Chrome\Application\chrome.exe" http://website.com' & "{ENTER}") 
;Close the dos box 
WinWaitActive("C:\WINDOWS\system32\cmd.exe") 
send('exit' & "{ENTER}") 
; 5400000 = 1.5 hours 
sleep(5400000); 
WinWaitActive("Listen Live - Google Chrome","") 
;Send("{F4}{ALTUP}") 
Send("{CTRLDOWN}{SHIFTDOWN}q{SHIFTUP}{CTRLUP}") 

開幕工作得很好,但劇本永遠不會關閉。當計時器非常短時它似乎工作,但當時間很長時不工作。

該腳本將通過Windows計劃任務執行。我嘗試將打開/關閉分成兩個獨立的腳本,但似乎也沒有工作。

我接受可以在Windows上工作的替代解決方案。

+0

當你說明它當計時器是短暫的,你通過Windows計劃任務執行它的工作原理?根據Windows的版本和計劃任務上的設置,Windows可能無法與桌面交互(換句話說,該任務可能不會「看到」您打開的窗口。) –

回答

1

更改最後一個WinWaitActive爲WinActivate 可能解決您的問題,但通過該窗口處理和關閉可能是一個更好的方法。

此外,請確定您正在尋找的窗口標題確實存在。我注意到我的Google Chrome窗口標題實際上並沒有「 - Google Chrome」。打開網頁並使用「自動窗口信息」應用程序進行確認。當你點擊/激活一個窗口時,該應用程序會顯示確切的窗口標題和其他信息。而且你不必完全匹配。例如,如果窗口標題在「Listen Live - xxxx」之後可能有所不同,那麼只需查找「Listen Live - 」即可。

嘗試下面的代碼,看看它是如何工作的:

; set variables 
$browser_exe = "c:\Program Files\Google\Chrome\Application\chrome.exe" 
$URL = "http://website.com" 
$window_title = "Listen Live - Google Chrome" 
$sleep_time = 5400000 ; 1.5 hours 

; run the browser and pass the URL to it 
Run($browser_exe & " " & $URL) 

; get window handle 
$window_handle = WinWait($window_title) 

Sleep($sleep_time) 

; close the window 
WinClose($window_handle) 
+0

謝謝。將它發送給希望看到它是否在其調度程序中運行的人。 – Aaron

相關問題