如何动态更改iexplore背景颜色

时间:2016-12-14 09:45:43

标签: windows internet-explorer winapi mfc win32-process

我从Win32应用程序启动Internet Explorer作为一个单独的进程。稍后,我想从我的应用程序动态更改此Internet Explore的背景颜色。我可以获得HWND的{​​{1}}:

IEXPLORE.EXE

那么,现在使用此HWND iexplor = GetForegroundWindow(); //assuming my explorer is active window currently 实例,我是否可以更改HWND的背景颜色?

常规Win32 API失败,因为它是一个单独的进程(访问被拒绝)。

对此问题的任何想法/建议?

以下代码失败,因为IE是一个单独的过程:

IEXPLORE

1 个答案:

答案 0 :(得分:0)

首先,当您需要时,IE不能保证在前台。您应该枚举要启动的特定进程的打开HWND句柄。查看EnumThreadWindows()EnumChildWindows()

其次,一旦你有一个正确的HWND到IE窗口,你可以get its IHTMLDocument2 interface,然后使用IE的DOM界面来根据需要操纵浏览器的内容。例如通过设置IHTMLDocument2::bgColor属性。或者使用IHTMLDocument2::body属性检索<body>元素的IHTMLBodyElement接口,然后设置IHTMLBodyElement::bgColor属性。