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
' 함 수 명 : 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
☞ 본인의 글 입니다. 이 글을 다른 곳에 게재하는 경우 본문 출처를 밝혀주시기 바랍니다.
DevpiaAutoLogin.exe
DevpiaAutoLogin.zip
댓글을 달아 주세요
input type = hidden 으로 된 사이트의 아이디 및 패스워드 로그인 버튼의 값을 가져오는 방법은 없나요?
hidden/text 상관없습니다.
document object만 구하면 동일하게 사용 가능합니다.
감사합니다~ 잘쓸께요^^