90 lines
2.9 KiB
Python
90 lines
2.9 KiB
Python
|
#!/usr/bin/env python
|
||
|
# -*- coding: utf-8 -*-
|
||
|
"""Test program to see if XTables.py will correctly id the poker client.
|
||
|
"""
|
||
|
# Copyright 2010, Ray E. Barker
|
||
|
|
||
|
# This program is free software; you can redistribute it and/or modify
|
||
|
# it under the terms of the GNU General Public License as published by
|
||
|
# the Free Software Foundation; either version 2 of the License, or
|
||
|
# (at your option) any later version.
|
||
|
#
|
||
|
# This program is distributed in the hope that it will be useful,
|
||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
# GNU General Public License for more details.
|
||
|
#
|
||
|
# You should have received a copy of the GNU General Public License
|
||
|
# along with this program; if not, write to the Free Software
|
||
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||
|
|
||
|
# ====EXAMPLE OUTPUT FROM MY SYSTEM====
|
||
|
#enter table xid find (in hex):
|
||
|
#0x3600018 <---GET THIS BY RUNNING xwininfo FROM A TERMINAL.
|
||
|
#Window information from xwininfo:
|
||
|
#-------------------------------------------------------
|
||
|
#
|
||
|
#xwininfo: Window id: 0x3600018 "Baseline Rd(26128925) - $100/$200 - Limit Hold'em"
|
||
|
#
|
||
|
# Root window id: 0x107 (the root window) (has no name)
|
||
|
# Parent window id: 0xe6e0a2 (has no name)
|
||
|
# 1 child:
|
||
|
# 0x3600019 (has no name): () 792x573+0+0 +2171+192
|
||
|
#
|
||
|
#
|
||
|
#-------------------------------------------------------
|
||
|
#
|
||
|
#
|
||
|
#Window information from functions:
|
||
|
#matched inside
|
||
|
#window = Xlib.display.Window(0x03600018) title = "Baseline Rd(26128925) - $100/$200 - Limit Hold'em"
|
||
|
#
|
||
|
#parent = Xlib.display.Window(0x00e6e0a2)
|
||
|
|
||
|
import sys
|
||
|
import os
|
||
|
import re
|
||
|
|
||
|
# Other Library modules
|
||
|
import Xlib.display
|
||
|
|
||
|
disp = Xlib.display.Display()
|
||
|
root = disp.screen().root
|
||
|
name_atom = disp.get_atom("WM_NAME", 1)
|
||
|
|
||
|
def get_window_from_xid(id):
|
||
|
for outside in root.query_tree().children:
|
||
|
if outside.id == id:
|
||
|
print "matched outside"
|
||
|
return outside
|
||
|
for inside in outside.query_tree().children:
|
||
|
if inside.id == id:
|
||
|
print "matched inside"
|
||
|
return inside
|
||
|
return None
|
||
|
|
||
|
def get_window_title(xid):
|
||
|
s = os.popen("xwininfo -children -id %d" % xid).read()
|
||
|
mo = re.search('"(.+)"', s)
|
||
|
try:
|
||
|
return mo.group(1)
|
||
|
except AttributeError:
|
||
|
return None
|
||
|
|
||
|
if __name__== "__main__":
|
||
|
|
||
|
print "enter table xid find (in hex): "
|
||
|
xid = sys.stdin.readline()
|
||
|
|
||
|
print "Window information from xwininfo:"
|
||
|
s = os.popen("xwininfo -children -id %d" % int(xid, 0)).read()
|
||
|
print "-------------------------------------------------------"
|
||
|
print s
|
||
|
print "-------------------------------------------------------\n\n"
|
||
|
|
||
|
print "Window information from functions:"
|
||
|
window = get_window_from_xid(int(xid, 0))
|
||
|
print "window =", window, "title = \"" + get_window_title(int(xid, 0)) + "\"\n"
|
||
|
|
||
|
print "parent =", window.query_tree().parent
|