关闭Chrome窗口或更好的解决方案

时间:2014-04-06 19:51:05

标签: google-chrome autoit

我是AutoIt的新手,并且有一个程序主要工作。

目标:在浏览器中打开一个网站,然后在一段时间(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计划任务执行。我已经尝试将open / close分成两个单独的脚本,但这似乎也没有用。

我愿意接触适用于Windows的其他解决方案。

1 个答案:

答案 0 :(得分: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)