2010-01-04 4 views
4

내 Windows 응용 프로그램에서 "Internet Explorer", Firefox 및 기타 브라우저에서 선택한 텍스트를 감지하고 싶습니다.프로그래밍 방식으로 브라우저에서 선택된 텍스트 얻기

이 작업을 수행하기 위해 어떤 코드를 사용해야하는지 알고 있습니까?

아이디어는 IE에서 텍스트를 검색, 대신하지 않는 것입니다

덕분에, IE에서 "선택한 텍스트를 캡처". 그런데 IE뿐만 아니라 포커스가있는 모든 Windows 응용 프로그램 내가 생각할 수있는 한 가지는 선택된 텍스트를 복사하고 클립 보드를 읽는 Ctrl + C를 시뮬레이트하는 것입니다.하지만이 솔루션도 마음에 들지 않습니다.

Im 거의 Windows API를 사용하여 선택한 텍스트를 가져 오는 방법이 있어야합니다. EM_GETSELTEXT, WM_GETTEXT, EM_GETSEL을 사용하면 유용 할 수 있지만 IE 나 다른 브라우저에서는 작동하지 않습니다. 여기에 문제가 있습니다. ....

+0

나는 단지 궁금하지만, 왜 이것을하고 싶습니까? –

+0

안녕하세요 Zee99, 내 대답에 댓글에 게시 한 정보로 질문과 태그를 업데이트하는 것이 좋습니다. 감사. – MagicAndi

답변

1

다소 큰 주문입니다. 나는 당신이 WebBrowser 컨트롤에 '외부'브라우저에로드 된 동일한 페이지를로드 할 수있는 IE로이를 달성 할 수있는 가능성이 희박 할 수 있다고 생각합니다. 선택한 텍스트를 가져옵니다. 내가 아는 한 최선을 다해 오랫동안 이와 같은 것을 시도해 온 누군가의 충고에 따르면, 엄청난 노력과 위험없이 C# 코드에 액세스 할 수있는 Firefox 용 자동화 모델은 없습니다.

페이지를 제어 할 수 있습니까? jQuery와 같은 것을 삽입하여 Ajax 호출을 사용하여 선택 사항을 게시하고 해당 호출을 수신하도록 서버를 설정할 수 있습니다.

+1

ProfK, WatiN CTP를 사용하면 Firefox 브라우저에서 렌더링 된 웹 페이지에 프로그래밍 방식으로 액세스 할 수 있습니다. – MagicAndi

+0

오, 멋지다, 고마워. – ProfK

1

WatiN API를 사용하여 웹 페이지에서 특정 문자열이 있는지 테스트 해 보는 것이 좋습니다. WatiN은 현재 IE 6, 7 및 8을 지원하며 Firefox 2.x 및 3.x에서 테스트하기 위해 CTP version이 존재합니다. 이 article은 WatiN을 사용하여 웹 페이지의 텍스트를 검색하는 방법을 설명하고 WatnN 사이트에 how to call WatiN from your application을 설명하는 문서가 있습니다.

코드에 대한 초기 시작 포인트는 다음과 같습니다

using System; 
using WatiN.Core; 

public static class WatiNExample 
{ 

    public static bool CheckUrlForText(string p_sUrl, string p_sText) 
    { 
     // Open a new Internet Explorer window and 
     // go to the google website. 
     IE ie = new IE(p_sUrl); 

     try  
     { 
      return ie.Text.Contains(p_sText)); 
     } 
     finally 
     { 
      ie.Close(); 
     } 
    } 
} 
+0

Thanks MagicAndi 하지만 IE에서 텍스트를 검색하는 대신 IE에서 "선택한 텍스트를 캡처"하는 것이 좋습니다. 그런데 IE뿐만 아니라 포커스가있는 Windows 응용 프로그램도 있습니다. – Zee99

0

VB 스크립트는 그것을 달성하는 방법입니다,하지만 IE에서 만 클립 보드에 (모든 웹 페이지)를 복사 할 수 있습니다. 그런 다음 붙여 넣기와 같이 검색된 문자열을 원하는 모든 응용 프로그램에서 조작 할 수 있습니다.

Option Explicit <br> 
Dim objShell <br> 
Set objShell=CreateObject("WScript.Shell") <br> 
objShell.Run "iexplore.exe http://www.google.com" ' or whatever page you need to copy from <br> 
WScript.Sleep 7000 ' just to wait IE to load the page <br> 
objShell.SendKeys "^a" ' selects all <br> 
objShell.SendKeys "^c" ' copy into clipboard <br> 
관련 문제