描述:
求教: 如何得到当前运行脚本的 Hwnd?
Note: 是运行当前脚本的 Hwnd, 不要是最后打开的激活页面的 Hwnd.
解决方案1:
HWND CWebMedia::getWindowHandle()
{
HWND hWnd = NULL;
LPOLEINPLACESITE pInPlaceSite = NULL;
IOleWindowPtr pWindow = NULL;
if (m_spInPlaceSite)
{
m_spInPlaceSite->GetWindow(&hWnd);
}else if(m_bWndLess && m_spClientSite){
if(SUCCEEDED(m_spClientSite->QueryInterface(
IID_IOleWindow, reinterpret_cast<void **>(&pWindow))))
{
pWindow->GetWindow(&hWnd);
pWindow->Release();
goto exit_point;
}
IOleInPlaceSitePtr pIPSite;
IOleInPlaceUIWindowPtr pDoc;
IOleInPlaceFramePtr pFrame;
RECT rcPosRect, rcClipRect;
m_spClientSite->QueryInterface(__uuidof(IOleInPlaceSite),(void**)&pIPSite);
if (pIPSite)
{
OLEINPLACEFRAMEINFO FrameInfo;
FrameInfo.cb = sizeof(FrameInfo);
if(SUCCEEDED(pIPSite->GetWindowContext(
&pFrame, &pDoc, &rcPosRect, &rcClipRect, &FrameInfo)))
{
hWnd = NULL;
if(pDoc)
pDoc->GetWindow(&hWnd);
if(!hWnd)
{
if(pFrame)
pFrame->GetWindow(&hWnd);
}
}
}
}
exit_point:
COMRELEASE(pInPlaceSite);
COMRELEASE(pWindow);
return hWnd;
}
IWebBrowser2::HWND属性,你自己应该知道脚本是运行在哪个浏览器中的
您可能想查找下面的文章:
- ATL控件如何获得自身的m_hwnd窗口句柄)?(非net环境)
- 如何向ATL设计的接口函数传递HWND句柄?
- 怎样把一个窗口句柄HWND设为当前MDI框架的子窗口??
- 怎么通过窗口HWND判断当前是否是WORD文档,然后获取其内容
- 如何从HWND窗口指针取得该窗口所属进程的HINSTANCE结构
- 知道了一个程序的主窗口hwnd,怎么得到这个进程的hInstance?
- 知道了一个程序的主窗口hwnd,怎么得到这个进程的hInstance?
- 已得到句柄HWND,如何获得进程?
- 已知一个窗口的HWND,怎样可以在上面加上IE,并阅览某个网页
- 当我取得某个窗口的HWND之后怎么让这个窗口变为活动窗口???