如果你是利用 CHtmlView 的话,在 html 里利用javascript做页面跳转,然后htmlview的beforenavigate 事件里截获链接,然后处理即可,因为链接你可以自定义,所以页面的参数可以通过连接传进来。
这是一段类似的代码可以参考
void CIEView::OnBeforeNavigate2(LPCTSTR lpszURL, DWORD nFlags, LPCTSTR lpszTargetFrameName, CByteArray&baPostedData, LPCTSTR lpszHeaders, BOOL* pbCancel){
// TODO: Add your specialized code here and/or call the base class
CMainFrame* pfrm=(CMainFrame*)AfxGetMainWnd()
CString strURL,strURL2
strURL=lpszURL
strURL.MakeLower()
if(strURL.Left(4)!="http" &&strURL.Left(3)!="ftp")
{
if(strURL.Left(8)=="email://")
{
*pbCancel=TRUE
ProcessEmail(strURL)
return
}
if(strURL.Left(9)=="search://")
{
*pbCancel=TRUE
ProcessSearch(strURL)
return
}
strURL=pfrm->GetRealURL(strURL)
pfrm->AddToHistory(strURL)
}
CHtmlView::OnBeforeNavigate2(lpszURL, nFlags,lpszTargetFrameName, baPostedData, lpszHeaders, pbCancel)
}
C语言是程序语言的鼻祖。不过要想在html中运行c?这我就不理解了。你到底要干什么?我们可以把c的exe文件跟html文件打包,从而执行c。也可以用Js把c源码直接拿出来,展示在浏览器上。至于要让c语言在网页中发挥作用吗?也不是不行,没有c语言做不到的事情。但是就没有那个必要了。
方法吗?很白痴,就是用c语言控制浏览器进程。通过注射来改变进程的值,以达到改变用户端的code资料。
或许你想让html能内嵌一个c语言程序。这个意思也就是内嵌一个exe进程在html中。这不就和上面的想法一样了吗?用木马的办法绑起来就可以了。
顺便说一句,c语言功能虽然强大。其他任何语言能做到的,他都能做到。不过,在某些特定的领域中,不宜用。因为麻烦。例如,你要改变一个值,你用js和用c。那个更容易定位一个变量呢?js和html的关系毕竟就是亲,他们之间的调用也方便许多。js也能直接访问code资料。基本html中的功能使用js都能实现,何必再用c?
如果真的有些问题,必须要用c来解决,还望提出一起讨论。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)