我從我的Win32應用程序啓動Internet Explorer作爲一個單獨的過程。之後,我想從我的應用程序中動態更改此Internet Explore的背景顏色。我可以得到HWND
的IEXPLORE.EXE
的:如何動態更改iexplore背景色
HWND iexplor = GetForegroundWindow(); //assuming my explorer is active window currently
所以,現在有了這個HWND
情況下,是有辦法,我可以改變的IEXPLORE
背景顏色?
定期Win32 API失敗,因爲它的一個單獨的進程(訪問被拒絕)。
對此問題的任何想法/建議?
下面的代碼失敗,因爲IE是獨立的過程:
HWND activeWindow = GetForegroundWindow();
if (activeWindow)
{
HBRUSH brush = CreateSolidBrush(RGB(0, 0, 0));
SetClassLongPtr(activeWindow, GCLP_HBRBACKGROUND, (LONG)brush);
InvalidateRect(activeWindow, NULL, TRUE);
int redraw = ::UpdateWindow(activeWindow);
}
在任何情況下,這都不太可能奏效,您想要做什麼/爲什麼?改變鉻的顏色? - 在最近的版本中沒有太多,改變顯示的網頁的顏色? - 後者可能與COM或MAA –
這聽起來完全不合理。有些機器可能沒有IE。 IE的實施方式,流程和窗口層次可能會有很大的變化。希望你能夠破解類似的背景畫筆,表明對Win32的工作原理缺乏讚賞。當你調整你的期望變得更現實時,你只會真正得到滿足。 –