视窗
这是使用 Python 2.7.8 测试的,使用了partybuddha 发布的双重 AppActivate 技巧和eryksun发布的睡眠技巧:
from webbrowser import open as browse
from win32com.client import Dispatch
from win32gui import GetForegroundWindow
from win32process import GetWindowThreadProcessId
from time import sleep
images=['http://serverfault.com', 'http://stackoverflow.com']
for rP in images:
_, pid = GetWindowThreadProcessId(GetForegroundWindow())
browse(rP)
sleep(1)
shell = Dispatch("WScript.Shell")
shell.AppActivate(pid)
shell.AppActivate(pid)
decision = raw_input('Is image ' + str(rP) + ' ok? ')
没有 1 秒的睡眠,浏览器保持焦点,好像 AppActivate 发生得太快了。
操作系统
#!/usr/bin/env python
from webbrowser import open as browse
from subprocess import check_output
images=['http://serverfault.com', 'http://stackoverflow.com']
for rP in images:
term = check_output(['/usr/bin/osascript', '-e',
'copy path to frontmost application as text to stdout']).strip()
browse(rP)
check_output(['/usr/bin/osascript', '-e',
'tell application "%s" to activate' % term])
decision = raw_input('Is image ' + str(rP) + ' ok? ')
这段代码是用 Python 2.7.5 测试的,所以它可能需要调整才能与 Python 3 一起工作,但核心思想是使用 osascript 获取最前面的应用程序,然后在浏览器窗口中打开 URL 后激活它。