我正在尝试获取活动窗口的标题。该应用程序是一个后台任务,因此如果用户打开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\"')
它适用于大多数窗口,但不是全部。例如,它找不到我的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 == None:
return "Could not get window"
title = window.get_name()
return title;
但是出于某种原因, 窗口 始终为“无”。
是否有人有更好的方法来获取当前窗口标题,或者如何修改我的一种方法,该方法适用于所有窗口?
编辑:
如果有人想知道这是我发现对所有窗口都适用的方式。
def get_active_window_title(self):
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)
id_w.wait()
buff = []
for j in id_w.stdout:
buff.append(j)
for line in buff:
match = re.match("WM_NAME\((?P<type>.+)\) = (?P<name>.+)", line)
if match != None:
type = match.group("type")
if type == "STRING" or type == "COMPOUND_TEXT":
return match.group("name")
return "Active window not found"
xdotool
可以做到的。
xdotool getactivewindow
问题内容: 参考先前提出的问题,我想知道如何获取当前活动文档的标题。 我尝试了上述问题的答案中提到的脚本。这有效,但仅给我应用程序的名称。例如,我正在写这个问题:启动脚本时,它将为我提供应用程序的名称,即“ Firefox”。这很干净,但并没有真正的帮助。我想记录我当前活动文档的标题。看到图像。 Firefox标题http://img.skitch.com/20090126-nq2egknhjr9
问题内容: 我试图用Java升级我的应用程序,使其仅在具有特定名称的进程窗口处于活动状态时才能工作。我发现使用JNI可以做到这一点,但是我不知道该怎么做。我只是找不到任何可以解释它的描述或示例。我的问题是- 如何获取Windows中当前活动窗口的进程名称(通过JNI或其他方式-我接受任何其他解决方案)? 问题答案: 减轻您的痛苦,并使用JNA。您将需要下载 Win32 API的 jna.jar 和
问题内容: 我希望找到一种方法来获取当前可见窗口的位置(相对于总页面宽度/高度),以便可以将其强制从一个部分滚动到另一部分。但是,要猜测哪个对象对您的浏览器拥有真正的X / Y,似乎有很多选择。 为了确保IE 6 +,FF 2+和Chrome / Safari能正常工作,我需要选择以下哪两项? 还有其他吗?一旦知道窗口在哪里,就可以设置一个事件链,该事件链将缓慢调用直到到达所需的位置。 问题答案:
问题内容: 有没有一种方法可以使用Python在Mac OS X上的给定时间查找当前活动窗口的应用程序名称? 问题答案: 这应该工作: 仅适用于Leopard,如果安装了PyObjC,并且仅在第一行中指向正确的python二进制文件,则在Tiger上工作(如果您已经安装了通用MacPython,则可能要在Tiger上这样做)。但是Peter用Carbon的方式做这件事的答案可能会快很多,因为从Py
问题内容: 如何在ReactJS中获得视口高度?在普通的JavaScript中,我使用 但是使用ReactJS,我不确定如何获取此信息。我的理解是 仅适用于创建的组件。但是,对于or 元素而言并非如此,这可能会给我窗口的高度。 问题答案: 设置道具 视口高度现在可以在渲染模板中用作{this.state.height}
有没有什么方法可以得到窗口标题而不做任何开关在硒? 目前我正在使用以下代码: