【问题标题】:Get window title with python?用python获取窗口标题?
【发布时间】:2010-12-05 05:38:26
【问题描述】:

我正在尝试编写一个 python 程序,如果“last.fm”(http://www.last.fm/download)的“窗口标题”发生变化(或者这是我第一次运行程序),则每隔 X 秒检查一次它应该使用从窗口标题中捕获的字符串来搜索歌曲的歌词并将它们显示给用户。

我目前使用 KDE4 作为我的桌面环境,我只需要“指出正确的方向”就可以捕获属于 last.fm 客户端的窗口标题的字符串。

谢谢!

【问题讨论】:

    标签: python kde


    【解决方案1】:

    您可以通过subprocess 模块使用wmctrl 实用程序。您可以在终端中输入wmctrl -l,然后查看可以从中获得的输出。

    【讨论】:

      【解决方案2】:

      我认为通过使用自动化框架,您可以将其作为一个子集来实​​现。 例如试试 dogtail(https://fedorahosted.org/dogtail/),它可以按名称关注窗口,按名称点击按钮,所以在 src 代码中你也许可以看到如何获取标题。

      【讨论】:

        【解决方案3】:

        查看 X11 实用程序,特别是 xlsclientsxprop

        例如,这是我用来获取有关我的 firefox 信息的 shell 命令 窗口:

        id_=$(xlsclients -al|grep "Command:  firefox-bin" -A1 -B4|head -n1|cut -d ' ' -f 2|tr -d ':')
        xprop -id "$_id"
        

        输出:

        SM_CLIENT_ID(STRING) = "1181f048b9000125508490000000037360008"
        WM_CLASS(STRING) = "firefox-bin", "Firefox-bin"
        WM_COMMAND(STRING) = { "firefox-bin" }
        WM_CLIENT_LEADER(WINDOW): window id # 0x0
        _NET_WM_PID(CARDINAL) = 4265
        WM_LOCALE_NAME(STRING) = "no_NO"
        WM_CLIENT_MACHINE(STRING) = "gnom.ifi.uio.no"
        WM_NORMAL_HINTS(WM_SIZE_HINTS):
                        program specified size: 10 by 10
        WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING
        WM_ICON_NAME(STRING) = "firefox-bin"
        _NET_WM_ICON_NAME(UTF8_STRING) = 0x66, 0x69, 0x72, 0x65, 0x66, 0x6f, 0x78, 0x2d, 0x62, 0x69, 0x6e
        WM_NAME(STRING) = "Firefox"
        _NET_WM_NAME(UTF8_STRING) = 0x46, 0x69, 0x72, 0x65, 0x66, 0x6f, 0x78
        

        【讨论】:

          【解决方案4】:

          尝试使用 dcop 并试用 kwin。您可能可以列出所有窗口标题。

          有关如何使用 dcop 的示例,请参见以下内容: http://docs.kde.org/stable/en/kdegraphics/ksnapshot/dcop.html

          【讨论】:

            【解决方案5】:

            另一个答案可能是检查应用程序是否将歌曲更改发布到 DBus。如果确实如此,那么您可以只听事件并采取行动。

            【讨论】:

              猜你喜欢
              • 2023-04-08
              • 2016-01-29
              • 2012-04-16
              • 1970-01-01
              • 2013-02-06
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多