HOWTO: Connecting to a Running Instance of Internet Explorer
1. project에 이 화일들을 import 시킴니다.
#import <mshtml.dll> // Internet Explorer 4.0x
#import <mshtml.tlb> // Internet Explorer 5
#import <shdocvw.dll>
2. 클래스 내 함수든지 아님 헤더파일 선언에서 멤버 변수로 하던지
해보세요!
SHDocVw::IShellWindowsPtr m_spSHWinds;
3. ShellWindows의 object를 생성합니다.
이렇게요....
m_spSHWinds.CreateInstance(__uuidof(SHDocVw::ShellWindows));
4. 마지막으로 원하시는 데로 변경 시키면 됩니다.
저는 이렇게 변경해서 아주 유용하게 썼습니다.
// 현재 떠 있는 익스플로러의 숫자
long nCount = m_spSHWinds->GetCount();
IDispatchPtr spDisp;
for (long i = 0; i <nCount; i++)
{
_variant_t va(i, VT_I4);
spDisp = m_spSHWinds->Item(va);
SHDocVw::IWebBrowser2Ptr spBrowser(spDisp);
if (spBrowser != NULL)
{
// 얻어온 익스플로러의 url
_bstr_t bszLocationName = spBrowser->GetLocationURL();
// 원하시는 대로 출력하시고요...
중략
MSHTML::IHTMLDocument2Ptr spDoc(spBrowser->GetDocument());
if (spDoc != NULL)
{
// 익스플로러의 html의 타이틀 얻어옴!
_bstr_t bszTitle = spDoc->Gettitle();
}
}
}
1. project에 이 화일들을 import 시킴니다.
#import <mshtml.dll> // Internet Explorer 4.0x
#import <mshtml.tlb> // Internet Explorer 5
#import <shdocvw.dll>
2. 클래스 내 함수든지 아님 헤더파일 선언에서 멤버 변수로 하던지
해보세요!
SHDocVw::IShellWindowsPtr m_spSHWinds;
3. ShellWindows의 object를 생성합니다.
이렇게요....
m_spSHWinds.CreateInstance(__uuidof(SHDocVw::ShellWindows));
4. 마지막으로 원하시는 데로 변경 시키면 됩니다.
저는 이렇게 변경해서 아주 유용하게 썼습니다.
// 현재 떠 있는 익스플로러의 숫자
long nCount = m_spSHWinds->GetCount();
IDispatchPtr spDisp;
for (long i = 0; i <nCount; i++)
{
_variant_t va(i, VT_I4);
spDisp = m_spSHWinds->Item(va);
SHDocVw::IWebBrowser2Ptr spBrowser(spDisp);
if (spBrowser != NULL)
{
// 얻어온 익스플로러의 url
_bstr_t bszLocationName = spBrowser->GetLocationURL();
// 원하시는 대로 출력하시고요...
중략
MSHTML::IHTMLDocument2Ptr spDoc(spBrowser->GetDocument());
if (spDoc != NULL)
{
// 익스플로러의 html의 타이틀 얻어옴!
_bstr_t bszTitle = spDoc->Gettitle();
}
}
}
'KB > MFC/Win32' 카테고리의 다른 글
전역 핫키 설정하기 (0) | 2004.03.19 |
---|---|
인터넷 되는지 확인하는 코드 (0) | 2004.03.19 |
UNICODE와 CString (0) | 2004.03.19 |
MSDN Unicode 관련 설명 해석 (0) | 2004.03.19 |
유니코드 텍스트 파일 안의 2바이트 시그니처 (0) | 2004.03.19 |