web Browser中嵌入U3D的HTML程序,如何抓到html的句柄,而不是web browser的

Ginie 2014-05-23 09:34:24
现在公司模拟仿真打算用U3D来搞了,之前都是OGRE和A3D,这些都有办法嵌到MFC中,现在改成U3D了,唯一能想到的嵌进去就是用web browser,开始用DOM方式读取JS,结果U3D把JS给包装起来了,HTML中木有,MFC中Invoke不到它,也试过XML,但是因为仿真需要比较快的操作XML,这样偶尔会出现读取XML崩溃,虽然可以在代码上过滤掉错误,跳过这次操作,但是那样就出现数据遗漏了,命名管道和内存共享打算放到后面试下,现在想先看看有没有人能够有获取web browser中html句柄的方法,如果有,就方便多啦,谢谢啦
...全文
280 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
小轩836 2014-07-10
  • 打赏
  • 举报
回复
学习了。多谢楼主!!
Ginie 2014-05-23
  • 打赏
  • 举报
回复
问题解决了,查找句柄要分层

HWND hWnd = ::FindWindowEx(this->GetSafeHwnd(),0,"Shell Embedding",NULL);
	hWnd = ::FindWindowEx(hWnd,0,"Shell DocObject View",NULL);
	hWnd = ::FindWindowEx(hWnd,0,"Internet Explorer_Server",NULL);
	hWnd = ::FindWindowEx(hWnd,0,"Unity.MiddlemanControl",NULL);
	hWnd = ::FindWindowEx(hWnd,0,"Button","UnityIntermediate");
	hWnd = ::FindWindowEx(hWnd,0,"Unity.WebPlayer","Unity Web Player");
不过后面还是改用了调用JS来操作

CComQIPtr<IHTMLDocument2> spDoc = m_Web.get_Document();  
	CComDispatchDriver spScript;  
	spDoc->get_Script(&spScript);  

	CComVariant var1 = 10, var2 = 20, varRet;  
	HRESULT hr = spScript.Invoke0(L"SendMessageToUnity");
来人拿分吧
oyljerry 2014-05-23
  • 打赏
  • 举报
回复
感谢分享。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧