//
by sojoo
#define
UNICODE
#define
_UNICODE
#include
<
tchar.h
>
#include
<
stdio.h
>
#include
<
Windows.h
>
#include
<
mshtml.h
>
#include
<
ExDisp.h
>
int
main(
int
argc,
char
*
argv[])
{
HRESULT hr;
CoInitialize(NULL);
IShellWindows
*
lpShellWindows;
hr
=
CoCreateInstance(CLSID_ShellWindows, NULL,
1
, IID_IShellWindows, (PVOID
*
)
&
lpShellWindows);
if
( hr
==
S_OK )
{
IDispatch
*
lpDispatch;
long
nCount;
lpShellWindows
->
get_Count(
&
nCount);
for
(
long
i
=
0
; i
<
nCount; i
++
)
{
VARIANT varIndex;
varIndex.vt
=
VT_I4;
varIndex.intVal
=
i;
hr
=
lpShellWindows
->
Item(varIndex,
&
lpDispatch);
if
( hr
==
S_OK )
{
IWebBrowser2
*
lpWebBrowser2;
hr
=
lpDispatch
->
QueryInterface(IID_IWebBrowser2, (PVOID
*
)
&
lpWebBrowser2);
if
( hr
==
S_OK )
{
IDispatch
*
lpDispatch;
//
lpWebBrowser2->get_HWND();
hr
=
lpWebBrowser2
->
get_Document(
&
lpDispatch);
if
( hr
==
S_OK )
{
IHTMLDocument2
*
lpDocument2;
hr
=
lpDispatch
->
QueryInterface(IID_IHTMLDocument2, (PVOID
*
)
&
lpDocument2);
if
( hr
==
S_OK )
{
BSTR bstrCookie;
hr
=
lpDocument2
->
get_cookie(
&
bstrCookie);
if
( hr
==
S_OK )
{
MessageBox(NULL, bstrCookie, NULL,
0
);
SysFreeString(bstrCookie);
}
lpDocument2
->
Release();
}
lpDispatch
->
Release();
}
lpWebBrowser2
->
Release();
}
lpDispatch
->
Release();
}
}
lpShellWindows
->
Release();
}
CoUninitialize();
return
0
;
}
利用VC得到当前IE的Cookie
最新推荐文章于 2019-05-20 10:16:34 发布
本文介绍了一种使用COM接口从已打开的Internet Explorer窗口中获取网页Cookies的方法。通过创建ShellWindows实例并遍历所有打开的IE窗口,可以进一步获取到每个窗口对应的WebBrowser对象,并最终调用其Document属性来得到IHTMLDocument2接口,进而读取Cookies。
1万+





