웹 페이지들 중에서, 특수키(Shift, Ctrl, Alt)나 범위 선택, ContextMenu를 막아 놓은 사이트들이 심심찮게 있습니다. 이런 사이트들의 원리는 각 HTML 요소의 이벤트 핸들러를 통해서 막게 됩니다.
d0cument나 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가 활성화되어 나타나게 됩니다.
다른 특수키나, 범위 선택도 비슷한 형식으로 처리하면 됩니다.
Posted by 퓨전마법사
,