프로그래밍/델파이

WebBrowser에서 ContextMenu, 특수키 막은 사이트 풀기.

채윤아빠 2008. 2. 14. 10:01
728x90
반응형
웹 페이지들 중에서, 특수키(Shift, Ctrl, Alt)나 범위 선택, ContextMenu를 막아 놓은 사이트들이 심심찮게 있습니다. 이런 사이트들의 원리는 각 HTML 요소의 이벤트 핸들러를 통해서 막게 됩니다.
document나 body에 이벤트 핸들러를 설정하여 막게 됩니다.

사용자 삽입 이미지


예를 들어 ContextMenu를 막을 때는 다음과 같이 HTML 코드를 작성합니다.

<BODY oncontextmenu="return false;">
위와 같이 작성을 하면 내용 부분에서 ContextMenu가 나타나지 않게 됩니다.

이를 풀기 위해서 다음과 같은 코드로 ContextMenu를 다시 나타나게 할 수 있습니다.

    use SHDocVw_TLB, MSHTML_TLB;

    // ...

    AHTMLDocument2 := AWebbrowser2.Document as IHTMLDocument2;
    ADispHTMLBody := AHTMLDocument2.body as DispHTMLBody;
    ADispHTMLBody.oncontextmenu := null;
위와 같은 코드를 수행한 이후에는 다시 ContextMenu가 활성화되어 나타나게 됩니다.
다른 특수키나, 범위 선택도 비슷한 형식으로 처리하면 됩니다.