小编Pat*_*ker的帖子

python xlib发生更改焦点事件时如何“正确”检测应用程序名称

我想在使用 python xlib 发生更改焦点事件时检测应用程序窗口名称,因此在第一步中我使用以下代码:

#!/usr/bin/env python
#-*- coding:utf-8 -*-
import Xlib.display
import time


display = Xlib.display.Display()
while True:
    window = display.get_input_focus().focus
    wmname = window.get_wm_name()
    wmclass = window.get_wm_class()
    if wmclass is None and wmname is None:
        window = window.query_tree().parent
        wmname = window.get_wm_name()
    print "WM Name: %s" % ( wmname, )
    time.sleep(3)
Run Code Online (Sandbox Code Playgroud)

但我想要一个正确的方法,然后我研究 xlib 事件并找到Input Focus Events并编写以下代码:

#!/usr/bin/env python
#-*- coding:utf-8 -*-
import Xlib.display
from Xlib import X

def main():
    display = Xlib.display.Display(':0')
    root = display.screen().root
    root.change_attributes(event_mask=Xlib.X.FocusChangeMask)

    while True:
        event …
Run Code Online (Sandbox Code Playgroud)

python focus detect xlib application-name

4
推荐指数
1
解决办法
2590
查看次数

标签 统计

application-name ×1

detect ×1

focus ×1

python ×1

xlib ×1