我从Win32应用程序启动Internet Explorer作为一个单独的进程。稍后,我想从我的应用程序动态更改此Internet Explore的背景颜色。我可以获得HWND
的{{1}}:
IEXPLORE.EXE
那么,现在使用此HWND iexplor = GetForegroundWindow(); //assuming my explorer is active window currently
实例,我是否可以更改HWND
的背景颜色?
常规Win32 API失败,因为它是一个单独的进程(访问被拒绝)。
对此问题的任何想法/建议?
以下代码失败,因为IE是一个单独的过程:
IEXPLORE
答案 0 :(得分:0)
首先,当您需要时,IE不能保证在前台。您应该枚举要启动的特定进程的打开HWND
句柄。查看EnumThreadWindows()
,EnumChildWindows()
等
其次,一旦你有一个正确的HWND
到IE窗口,你可以get its IHTMLDocument2
interface,然后使用IE的DOM界面来根据需要操纵浏览器的内容。例如通过设置IHTMLDocument2::bgColor属性。或者使用IHTMLDocument2::body
属性检索<body>
元素的IHTMLBodyElement
接口,然后设置IHTMLBodyElement::bgColor属性。