WebBrowserControl의 현재 인스턴스에 대해서만 프록시를 설정하려고합니다. 설명서가 끔찍하지만 내가 wininet.dll
의 InternetSetOption
을 호출하면 WebBrowserControl이 첫 번째 매개 변수로 사용하는 내부 브라우저에 IntPtr 핸들을 전달한 다음 메서드가 현재 인스턴스에만 영향을 미칠 것이라고 생각합니다.이 메서드를 사용하여 프록시를 설정할 수 있습니다. http://msdn.microsoft.com/en-us/library/aa385114(v=VS.85).aspx). 그러나 WebBrowserControl은이 핸들에 액세스 할 수있는 방법을 제공하지 않습니다. 나는 인터넷 검색을하고 시간을 보냈다. 그리고 이것은 많은 사람들에게 매우 도움이 될 것 같지만 아무도 그것을 아직 알지 못했다!WebBrowserControl의 AxIWebBrowser2 Handle을 InternetSetOption에서 사용하려면 System .__ ComObject에서 문제 발생
WebBrowserControl에는 처리가 필요한 COM 개체 인 AxIWebBrowser2라는 속성이 있습니다. MS가 이것을 위해 사용하는 인터페이스는 UnsafeNativeMethods.IWebBrowser2
이며, 내가 생각하는 것 인 HWND
이라는 속성이 있습니다. 그러나 UnsafeNativeMethods.IWebBrowser2
은 internal
으로 표시됩니다. WebBrowserControl에서 리플렉션을 사용하면 private AxIWebBrowser2
속성 값을 얻을 수 있지만 형식은 System.__ComObject
으로 나타납니다. 이 System.__ComObject
은 Windows.Forms
어셈블리 내부에 있으므로 IWebBrowser2
으로 캐스팅 할 수 없습니다.
AxIWebBrowser2
개체의 HWND
속성에 C#을 사용하여 액세스 할 수 있습니까?
예, 그렇습니다. 하지만 당신이 말했듯이, 그것은 프로세스 차원에서 이루어집니다. 다중 프록시를 사용하기 위해 여러 스레드를 생성 할 수 있어야합니다. 대안은 서로 다른 프록시를 사용하는 여러 프로세스를 생성하는 것이지만 비슷한 일을 시도하고 제대로 작동하지 않는 것 같습니다. 프록시가 글로벌 기준으로 설정된 것으로 보입니다! – hackerhasid