How to get a window title and scan it every 100ms use python?

sword picture sword · Apr 18, 2012 · Viewed 15.9k times · Source

with python, I want to get a window title,a stock software window.

the window's title will change when I browse another stock ,now I want to scan it every 100ms and return the new title,but the front text in the window title is the same text.

I can print the title in cmd,but I don't know how to scan it every 100ms and return

I use this code:

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

How to scan every 100ms and return the new title when it change?

Answer

user850498 picture user850498 · Apr 18, 2012

Put it in a loop:

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)