IE 연동 및 자동 로그인 기능 테스트를 위해 간단히 데브피아 자동 로그인 프로그램을 만들었습니다.

실행중인 IE(HTMLDocument Object) 정보를 구하는 방법은 여러가지가 있겠지만 이 프로그램에서는 FindWindow(), FindWindowEx(), ObjectFromLresult() 등의 API를 사용했습니다.


ObjectFromLresult 함수를 이용하면 HWND로부터 HTMLDocument Object를 구할 수 있습니다.

MSDN 기술자료 : How to get IHTMLDocument2 from a HWND

'===============================================================================
' 함 수 명 : GetHtmlDocFromServerHwnd()
' 설    명 : Internet Explorer_Server 핸들로부터 HTMLDocument Object 구함
' 입 력 값 :
' 결 과 값 :
' 작 성 일 : 2007.05.25
' 작 성 자 : 제용재(<A href="mailto:182cm@korea.com">182cm@korea.com</A>)
'===============================================================================
Public Function GetHtmlDocFromHwnd(ByVal hwnd As Long) As IHTMLDocument2
  Dim ID     As UUID
  Dim lngReg As Long
  Dim lngHnD As Long

  lngHnD = RegisterWindowMessage("WM_HTML_GETOBJECT")

  With ID
    .Data1 = &H626FC520
    .Data2 = &HA41E
    .Data3 = &H11CF
    .Data4(0) = &HA7
    .Data4(1) = &H31
    .Data4(2) = &H0
    .Data4(3) = &HA0
    .Data4(4) = &HC9
    .Data4(5) = &H8
    .Data4(6) = &H26
    .Data4(7) = &H37
  End With

  Call SendMessageTimeout(hwnd, lngHnD, 0, 0, &H2, 2000, lngReg)
  Call ZeroMemory(ID, Len(ID))
  Call ObjectFromLresult(lngReg, ID, 0, GetHtmlDocFromHwnd)
End Function


사용자 삽입 이미지

위에서 파란색으로 표시한 텍스트 부분만 변경한다면 다른 사이트에 적용하기에도 별 어려움이 없을것입니다.





☞ 본문 출처 : http://www.enjoydev.com/blog/123(새 창으로 열기)

☞ 본인의 글 입니다. 이 글을 다른 곳에 게재하는 경우 본문 출처를 밝혀주시기 바랍니다.

2007/05/25 10:57 2007/05/25 10:57

트랙백 주소 :: http://optant.ismine.net/blog/trackback/123

댓글을 달아 주세요

  1. 김원철 2008/07/25 11:00  댓글주소  수정/삭제  댓글쓰기

    input type = hidden 으로 된 사이트의 아이디 및 패스워드 로그인 버튼의 값을 가져오는 방법은 없나요?

    • 용재님 2008/07/28 09:16  댓글주소  수정/삭제

      hidden/text 상관없습니다.

      document object만 구하면 동일하게 사용 가능합니다.

  2. 배상진 2010/02/14 03:25  댓글주소  수정/삭제  댓글쓰기

    감사합니다~ 잘쓸께요^^