문제

IM은 현재 wxwidgets에서 Active X Com으로 IE를 사용하고 있으며 항상 작동하는 사용자 에이전트를 변경하는 쉬운 방법이 있는지 알고 싶어했습니다.

ATM IM 헤더를 변경하지만 링크를 수동으로로드 할 때만 작동합니다 (예 : Call Seturl).

도움이 되었습니까?

해결책

내가 찾을 수있는 한 "항상 작동하는"유일한 방법은 레지스트리에서 사용자 에이전트 문자열 변경. 물론 그것은 영향을 미칩니다 모든 해당 컴퓨터에서 실행되는 웹 브라우저 인스턴스.

Google 검색을 시도 할 수도 있습니다 DISPID_AMBIENT_USERAGENT. 에서 이 Microsoft 페이지:

MSHTML은 또한 새로운 사용자 에이전트를 요청합니다. DISPID_AMBIENT_USERAGENT클릭 하이퍼 링크를 탐색 할 때. 이 앰비언트 속성은 재정의 할 수 있지만 프로그래밍 방식으로 탐색 방법을 호출 할 때 사용되지 않습니다. 또한 DOM Navigator Object 또는 ClientInformation 동작의 UserAgent 속성이 변경되지는 않습니다.

나는 MSHTML 구성 요소에 익숙하지 않으므로 도움이 될 것이라고 확신합니다.

나는 적어도 당신에게 시작할 장소를 제공하기를 바랍니다. :-)

다른 팁

나는 당신이 Head Geek을 제공 한 힌트와 함께 오늘 약간의 인터넷 검색을했고 나는 그것을하는 방법을 해결했습니다.

WXWIDGETS는 호출 요청을 처리하는 Framesite라는 ActiveX Rapper 클래스를 사용합니다. 내가 한 일은 이것으로부터 물려받는 새로운 수업을 만들고 dispid_ambient_useragent 이벤트를 처리하고 다른 모든 것을 통과하는 것이 었습니다. 따라서 이제 다른 사용자 에이전트를 반환 할 수 있습니다.

도와 주셔서 감사합니다.

Head Geek은 이미 Registy의 IE가 기본적으로 어디에서 볼지 알려주었습니다.

그러나 이것은 단지 기본값입니다. [idochostuihandler :: getoptionkeypath]를 구현하는 경우http://msdn.microsoft.com/en-us/library/aa753258(vs.85%29.aspx) 또는 [idochostuihandler2 :: getoverridekeypath] (http://msdn.microsoft.com/en-us/library/aa753274(vs.85%29.aspx), 즉, 해당 레지스트리 항목을 대신 사용합니다.

아마도 Sysinternal의 Regmon을 사용하여 이것을 디버깅하고 싶을 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top