win32gui获取窗口内容(internet explorer_server)

时间:2013-04-28 14:38:10

标签: python win32gui

为了从聊天窗口中提取文本,我开始收集窗口句柄。 我通过以下代码管理:

import time, win32gui
def callback(hwnd, IEServers):
    if win32gui.GetClassName(hwnd) == 'Internet Explorer_Server':
         IEServers.append(hwnd)
             print "IE server found:", hwnd
time.sleep(3)
mainHwnd = win32gui.GetForegroundWindow()
IEServers = []
win32gui.EnumChildWindows(mainHwnd, callback, IEServers)
for serv in IEServers:
    print win32gui.GetClassName(serv)

接下来我要做的是将内容(内部html?)作为字符串。

我相信它可以通过IHTMLDocument2对象完成。 信息:http://support.microsoft.com/kb/q249232

怎么做?

1 个答案:

答案 0 :(得分:0)

你可以尝试这样的事情。也许不完全是你想要的,但应该让你顺路一时:

import time, win32gui
import win32com.client

time.sleep(2)
mainHwnd = win32gui.GetForegroundWindow()

s = win32com.client.Dispatch("Shell.Application")
for w in s.Windows():
    if int(w.Hwnd) == mainHwnd:
        print w.LocationURL
        print w.Document.body.innerText
        print w.Document.body.innerHTML
        break    

我认为innerText是你想要的,但我包含了几个属性,所以你可以选择。当然,这只适用于IE。