我試圖設置一個代理只有WebBrowserControl的當前實例。該文件是可怕的,但我相信,如果我打電話wininet.dll
的InternetSetOption
將IntPtr句柄傳遞給WebBrowserControl使用的內部瀏覽器作爲第一個參數,那麼該方法將隻影響當前實例(我可以使用此方法設置代理http://msdn.microsoft.com/en-us/library/aa385114(v=VS.85).aspx)。但是,WebBrowserControl不提供任何方法來訪問此句柄。我花了數小時搜索和搜索,看起來這對很多人來說都是非常有用的,但沒有人知道它!獲取WebBrowserControl的AxIWebBrowser2手柄在InternetSetOption中使用,COM問題與系統.__ ComObject
WebBrowserControl有一個名爲AxIWebBrowser2的屬性,它是我需要的句柄的COM對象。 MS使用的接口名爲UnsafeNativeMethods.IWebBrowser2
,並且有一個名爲HWND
的屬性,我認爲這是我需要的。但是,UnsafeNativeMethods.IWebBrowser2
標記爲internal
。使用WebBrowserControl上的反射,我可以獲得私有的AxIWebBrowser2
屬性值,但其類型爲System.__ComObject
。我不能將這System.__ComObject
作爲IWebBrowser2
,因爲這是Windows.Forms
程序集的內部。
有什麼辦法可以使用C#訪問這個AxIWebBrowser2
對象的HWND
屬性?
是的,那是有效的。但正如你所說,這是一個全過程的基礎。我需要能夠產生多個線程來使用多個代理。另一種方法是產生多個進程,每個進程使用不同的代理服務器,但我嘗試做類似的事情,但似乎並沒有正確的工作 - 似乎代理服務器是在全球範圍內設置的! – hackerhasid 2010-11-23 00:51:14