我想使用python在屏幕上获取活动窗口.
例如,路由器的管理界面,您输入用户名和密码作为admin
我希望使用python捕获该管理界面以自动输入用户名和密码.
为了做到这一点,我需要进口什么?
我正在尝试获取活动窗口的标题.该应用程序是一个后台任务,因此如果用户打开Eclipse,该函数将返回"Eclipse - blabla",因此它不会获得我自己窗口的窗口标题.我正在使用PyQt4在Python 2.6中开发它.
我现在的解决方案,从SO的旧答案中借用并略微修改,如下所示:
def get_active_window_title():
title = ''
root_check = ''
root = Popen(['xprop', '-root'], stdout=PIPE)
if root.stdout != root_check:
root_check = root.stdout
for i in root.stdout:
if '_NET_ACTIVE_WINDOW(WINDOW):' in i:
id_ = i.split()[4]
id_w = Popen(['xprop', '-id', id_], stdout=PIPE)
for j in id_w.stdout:
if 'WM_ICON_NAME(STRING)' in j:
if title != j.split()[2]:
return j.split("= ")[1].strip(' \n\"')
Run Code Online (Sandbox Code Playgroud)
它适用于大多数窗口,但不是全部.例如,它找不到我的kopete聊天窗口,或者我正在开发的应用程序的名称.
我的下一次尝试看起来像这样:
def get_active_window_title(self):
screen = wnck.screen_get_default()
if screen == None:
return "Could not get screen"
window = screen.get_active_window()
if window == …Run Code Online (Sandbox Code Playgroud)