#include "stdafx.h"
#include <windows.h>
#include <MsHTML.h>
#include <Exdisp.h>
#include <ExDispid.h>
#include <comutil.h>//important
#pragma comment(lib, "comsuppw.lib")//important
#include <atlstr.h>
int _tmain(int argc, _TCHAR* argv[])
{
CoInitialize(NULL);
HRESULT hr = NULL;
IShellWindows *pIShellWindows;
IDispatch *pIDispatch;
CoCreateInstance(CLSID_ShellWindows, NULL, CLSCTX_ALL, IID_IShellWindows, (void **)& pIShellWindows);
long count;
pIShellWindows->get_Count(&count);
for (int i = 0; i < count; i++)
{
VARIANT vt;
VariantInit(&vt);
vt.vt = VT_I4;
vt.lVal = i;
hr = pIShellWindows->Item(vt, &pIDispatch);
if (SUCCEEDED(hr) && (pIDispatch != NULL))
{
// "Dispatch success"
IWebBrowser2 *pBrowser2 = NULL;
hr = pIDispatch->QueryInterface(IID_IWebBrowserApp, (void **)&pBrowser2);
if (hr == S_OK)
{
BSTR name;
pBrowser2->get_FullName(&name);
CString n(name);
SHANDLE_PTR pHWND;
pBrowser2->get_HWND(&pHWND);
DWORD dwPID = 0;
GetWindowThreadProcessId((HWND)pHWND, &dwPID);
BSTR bstr;
pBrowser2->get_LocationURL(&bstr);
char* lpszText2 = _com_util::ConvertBSTRToString(bstr);
printf("pid: %u, path: %S ULR:%s\n", dwPID, n.GetBuffer(), lpszText2);
delete[] lpszText2;
SysFreeString(bstr);
}
}
}
CoUninitialize();
return 0;
}
获取浏览器地址栏URL
最新推荐文章于 2023-08-28 18:07:12 发布