Как получить заголовок окна и сканировать его каждые 100 мс, используя python?

с python я хочу получить заголовок окна, стандартное окно программного обеспечения.

заголовок окна изменится, когда я просматриваю другой запас, теперь я хочу сканировать его каждые 100 мс и возвращать новый заголовок, но передний текст в заголовке окна - тот же текст.

Я могу напечатать заголовок в cmd, но я не знаю, как сканировать его каждые 100 мс и возвращать

Я использую этот код:

from win32gui import *
import re

titles = set() 
titlekey = ''

def foo(hwnd,nouse):
    if IsWindow(hwnd) and IsWindowEnabled(hwnd) and IsWindowVisible(hwnd):
        titles.add(GetWindowText(hwnd))

EnumWindows(foo, 0) 
lt = [t for t in titles if t] 
lt.sort() 
for t in lt:
    if re.match(titlekey,t):
        print t

Как сканировать каждые 100 мс и возвращать новый заголовок при его изменении?


person sword    schedule 18.04.2012    source источник
comment
Там, где у вас есть код, сделайте отступ, чтобы отформатировать его как код, не помещайте его в кавычки. Отредактировано для вас.   -  person Gareth Latty    schedule 18.04.2012
comment
Не беспокойтесь, теперь вы знаете, в следующий раз.   -  person Gareth Latty    schedule 18.04.2012


Ответы (1)


Поместите его в цикл:

import win32gui
tempWindowName=win32gui.GetWindowText (win32gui.GetForegroundWindow())
import time
while True:
    if (tempWindowName==win32gui.GetWindowText (win32gui.GetForegroundWindow()))
        pass
    else
        tempWindowName=win32gui.GetWindowText (win32gui.GetForegroundWindow())
        #do what you want
    time.sleep(0.1)
person user850498    schedule 18.04.2012
comment
эм..... Я думаю, что моя идея может быть неправильной. Я хочу получить заголовок, когда он изменится, вернуть новый заголовок и использовать некоторый текст в заголовке для запроса данных в sqlite, теперь я думаю, что сканируйте его каждые 100 мс, может быть, не работает.так что......понятия не имею..... - person sword; 18.04.2012
comment
1. я думаю, что это отвечает на ваш вопрос. 2. что именно вы хотите сделать? - person user850498; 18.04.2012
comment
конечно, ваш ответ соответствует моему вопросу, но может быть моя идея неверна. Моя программа должна получить заголовок активного окна или заголовок его родительского окна и вернуть новый заголовок при изменении заголовка, если нет изменений, то ничего не делать, как я должен использовать крючок? - person sword; 19.04.2012
comment
1. отредактируйте свой вопрос, чтобы задать то, что вы хотите спросить. 2. кроме ответа. 3. если вам нужна дополнительная помощь, задайте новый вопрос. - person user850498; 19.04.2012
comment
Большое спасибо, я отредактировал ваш новый код и поместил его в свою программу, он работает. :) - person sword; 22.04.2012