致力于使用 Python 驱动的自动化工具。
想象一下有一个正在运行的应用程序池:
APPS_POOL = ['Chrome', 'SomeApp', 'Foo']
该脚本在循环中运行(每秒),并且需要在它们之间随机切换:
# Init App object
app = application.Application()
# Select random app from the pull of apps
random_app = random.choice(APPS_POOL)
app.connect(title_re=".*%s" % random_app)
print 'Select "%s"' % random_app
# Access app's window object
app_dialog = app.window_(title_re=".*%s.*" % random_app)
if app_dialog.Exists():
app_dialog.SetFocus()
第一次它工作正常,但每次都 - 窗口不会进入前台。有任何想法吗?
EDIT:该脚本是从 Win7 CMD 运行的。一旦焦点设置到其他窗口,系统是否可能以某种方式“阻止”CMD 设置焦点?
我觉得SetFocus
有点麻烦。至少在我的机器上我收到一个错误:error: (87, 'AttachThreadInput', 'The parameter is incorrect.')
。所以也许你可以玩最小化/恢复。请注意,这种方法也不是万无一失的。
import random
import time
from pywinauto import application
from pywinauto.findwindows import WindowAmbiguousError, WindowNotFoundError
APPS_POOL = ['Chrome', 'GVIM', 'Notepad', 'Calculator', 'SourceTree', 'Outlook']
# Select random app from the pull of apps
def show_rand_app():
# Init App object
app = application.Application()
random_app = random.choice(APPS_POOL)
try:
print 'Select "%s"' % random_app
app.connect(title_re=".*%s.*" % random_app)
# Access app's window object
app_dialog = app.top_window_()
app_dialog.Minimize()
app_dialog.Restore()
#app_dialog.SetFocus()
except(WindowNotFoundError):
print '"%s" not found' % random_app
pass
except(WindowAmbiguousError):
print 'There are too many "%s" windows found' % random_app
pass
for i in range(15):
show_rand_app()
time.sleep(0.3)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)