Skip to content

Определение размеров клиента #7

@disfated

Description

@disfated

Задача

Требуется кроссплатформенно получить размеры окна флэш-плагина с игрой, то есть:

(
  left    # x-координата относительно экрана левого верхнего угла
  top     # y-координата относительно экрана левого верхнего угла
  width   # ширина клиента
  height  # высота клиента
)

Решения

Здесь текущее решение. Ниже - старый трэш.

Windows

Пока рабочий код из автоита. С небольшими правками должен работать.

https://gist.github.com/915744

В кратце так:

import win32gui
hwnd = win32gui.НайтиОкноКонтролаПоЗаданнымПараметрам(class_name, window_name)
win32gui.ActivateWindow(hwnd)
l, t, r, b = win32gui.GetWindowRect(hwnd)

Unix

Через скриншот это сделать проблематично, т.к. зацепиться не за что. В особенности правый нижний угол...

Так что надо что-то придумывать!!! Без этого никуда не двинемся!

Окошко активируется так:

import wnck
import gtk
from time import time

browser_title = 'Google Chrome'

wnck_screen = wnck.screen_get_default()
while gtk.events_pending(): gtk.main_iteration()

wnck_windows = [w for w in wnck_screen.get_windows() if w.get_name().find(browser_title) >= 0]
if len(wnck_windows) == 0:
    print 'Not found browser window'
else:
    wnck_window = wnck_windows[0]
    wnck_window.activate(int(time()))

Кстати, wnck - гномовская тема, она вообще будет не в гноме работать? Кто знает?

OSX

??

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions