2011-05-11 5 views
1

바탕 화면에 Internet Explorer 페이지가 있습니다. 웹 페이지의 이름은 TEST입니다. user32.dll에서 FindWindow()를 사용하면 창 위에 핸들러를 가져올 수 있습니다. 이 페이지에는 Go라는 버튼이 있으며 이름과 성이라고하는 2 개의 텍스트 상자가 있습니다. 어떻게하면 내 이름과 성을 웹 페이지에 쓰고 프로그래밍 방식으로 이동을 클릭 할 수 있습니까? THXInternet Explorer 페이지의 SendMessage user32dll

답변

0

Win32 (user32.dll)를 사용하여 실제로 묻고있는 것이 확실하지 않은 경우 웹 서버와 상호 작용하려는 경우 httprequest 및 httpresponse 클래스를 사용하여 GET 및 POST 할 수 있습니다. 필요에 따라 변수. 테스트 또는 이벤트의 표준 세트를 회신하여 트링은 다음 외국 창을 업데이트하기 피들러

http://www.fiddler2.com/fiddler2/ 
2

정상적인 방법 좀보고 할 수 있습니다 경우

HttpWebRequest testRequest = (HttpWebRequest)WebRequest.Create("http://....."); 
HttpWebResponse testResponse = (HttpWebResponse)testRequest.GetResponse(); 
string responseStatus = testResponse.StatusCode.ToString(); 
testResponse.Close(); 

http://msdn.microsoft.com/en-us/library/system.web.httprequest.aspx 
http://msdn.microsoft.com/en-us/library/system.web.httpresponse.aspx 

은 (WM_SETTEXT을 등은) '수상 IE 내 양식 구성 요소가 재고 창이 아니기 때문에 IE 자체로 렌더링됩니다.

DOM을 통해 (또는 WaitN과 같은 것을 사용하여) 호출해야합니다.

using mshtml; //.net ref microsoft.mshtml 
using SHDocVw; //com ref `microsoft internet controls` + change ref to no embed interop 

int HWND = 0x001C0C10; //your IE 
foreach(InternetExplorer ie in new ShellWindowsClass()) { 
    //find the instance 
    if (ie.HWND == HWND) { 
     //get doc 
     HTMLDocument doc = (HTMLDocument)ie.Document; 
     doc.getElementsByName("name").item(0).value = "bob"; 
     doc.getElementsByName("surname").item(0).value = "smith"; 
     doc.getElementsByName("go").item(0).click(); 
    } 
}