【问题标题】:win32gui get window content (internet explorer_server)win32gui 获取窗口内容(internet explorer_server)
【发布时间】:2013-04-28 14:38:09
【问题描述】:

为了从聊天窗口中提取文本,我从收集窗口句柄开始。 我通过以下代码设法做到了这一点:

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

如何做到这一点?

【问题讨论】:

    标签: python win32gui


    【解决方案1】:

    你可以试试这样的。也许不完全是你想要的,但应该让你上路:

    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。

    【讨论】:

    • 这不起作用。窗口是更大界面的一部分,它不是 internet explorer_server 类..
    • 好吧,我一定误解了你的情况。很抱歉,它没有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多