2012-04-18 5 views
5

とPython、私はウィンドウタイトル、ストックソフトウェアウィンドウを取得したい。どのようにウィンドウのタイトルを取得し、100ミリ秒ごとにそれをスキャンするPythonを使用して?

別のストックを閲覧するとウィンドウのタイトルが変更されるので、100msごとにスキャンして新しいタイトルを返すようにしたいのですが、ウィンドウタイトルの先頭のテキストは同じテキストです。

私はCMDにタイトルを印刷することができますが、私はそれを100ミリ秒ごとにスキャンして、私はこのコードを使用

を返す方法がわからない:

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 

それが変わると新しいタイトル?

+0

を、コードとしてフォーマットすることをインデント、BLOCKQUOTEに入れないでください。あなたのために編集されました。 –

+0

申し訳ありませんが、私の間違いです。 – sword

+0

心配する必要はありません。あなたは今すぐ知っています。 –

答えて

6

ループでそれを入れて:あなたは、コードを持っている

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) 
+0

em .....私のアイデアは間違っていると思います。私は、変更するとタイトルを取得し、新しいタイトルを返し、sqliteのクエリデータにタイトルのテキストを使用したいと思います。私は考えていません..... – sword

+0

1.私はこれがあなたの質問に答えると思います。あなたは何をしたいですか? – user850498

+0

あなたの答えは私の質問を再送します。私の考えは間違っているかもしれません..myプログラムはアクティブなウィンドウのタイトルまたは親ウィンドウのタイトルを取得するために を必要とします。フックを使う? – sword

関連する問題