VC中利用webbrowser执行自定义JS函数
来源:互联网 发布:公司网络更换路由监控 编辑:程序博客网 时间:2024/04/28 10:36
转载请注明文章出处与作者信息。
最近查找了很多资料来执行自定义的JS函数,例如:function TC(){var t=document.title;return t;} 。 网上搜索的资料有蛮多,但是一直没能很快的完成。花了2天时间,终于完成了。特发博记忆与分享下。
1、首先在源文件里 加入导入库和空间声明:
#import "C:\\windows\\system32\\msscript.ocx"using namespace MSScriptControl;
2、在程序启动时 初始化COM组件,退出时 释放COM组件:
//////初始化COM组件 CoInitialize(NULL);////释放COM CoUninitialize();
3、主要的实现代码。
HRESULT hr;IScriptControlPtr pScriptControl(__uuidof(ScriptControl));LPSAFEARRAY psa;SAFEARRAYBOUND rgsabound[] = { 1, 0 }; // 1 elements, 0-basedint i;psa = SafeArrayCreate(VT_VARIANT, 1, rgsabound);if (!psa){return ;}VARIANT vFlavors[1];for (i = 0; i < 1; i++){VariantInit(&vFlavors[i]);V_VT(&vFlavors[i]) = VT_BSTR;}V_BSTR(&vFlavors[0]) = SysAllocString(L"TC_P");long lZero = 0;hr = SafeArrayPutElement(psa, &lZero,&vFlavors[0]);for(i=0;i<1;i++){SysFreeString(vFlavors[i].bstrVal);}pScriptControl->Language = "JScript";pScriptControl->AllowUI = TRUE;_bstr_t exp = L"function TC(){var t=document.title;return t;}";pScriptControl->AddCode(exp);IHTMLDocument2 *objDocument1=NULL;IHTMLWindow2* pIHTMLWindow1 = NULL;objDocument1=(IHTMLDocument2 *)pBrowser.get_Document();if(objDocument1){objDocument1->get_parentWindow(&pIHTMLWindow1);pScriptControl->AddObject("window", pIHTMLWindow1, VARIANT_TRUE); //这几句代码很重要,没有的话,执行会报错。}_variant_t outpar = pScriptControl->Run("TC", &psa); //outpar是js函数执行后的返回值// DWORD err = ::GetLastError();_bstr_t bstrReturn = (_bstr_t)outpar.bstrVal;char *pResult = (char *)bstrReturn;SafeArrayDestroy(psa);return ;上面代码是综合了网上很多盆友的思路和代码编写而成。感谢互联网与大鸟们的分享精神!
- VC中利用webbrowser执行自定义JS函数
- C# WebBrowser执行自定义JS方法
- delphi webbrowser 执行js
- VC中程序调用Js自定义函数的注意事项
- VC中程序调用Js自定义函数的注意事项
- VC中程序调用Js自定义函数的注意事项
- VC中延迟函数执行
- 如何从 VC WebBrowser 应用程序中调用脚本函数
- WinForm WebBrowser执行网页的中JavaScript函数
- delphi执行webbrowser中的js
- delphi中WEBBrowser网页JS函数调用delphi函数
- delphi中WEBBrowser网页JS函数调用delphi函数
- delphi中WEBBrowser网页JS函数调用delphi函数
- VC++ webbrowser函数使用范例
- VC++ webbrowser函数使用范例
- VC++ webbrowser函数使用范例
- VC++ webbrowser函数使用范例
- WebBrowser执行网页中的函数
- LinQ to Sql 分页,增,删,改 实例
- 通过SoapHeader来增强webService 的安全性
- JS中eval工作原理和json格式(eval+json两者结合应用)
- TextBox中只能输入数字的几种常用方法(C#)
- SGU 125 Shtirlits
- VC中利用webbrowser执行自定义JS函数
- javascript设计模式交流(一) ——Singleton Pattern
- 物体识别算法——SIFT/SURF、haar特征、广义hough变换的特性对比分析
- 有关Activity的Launch mode 以及Intent的setFlags
- helloword博客
- C++标准程序库中的string类
- eclipse快捷键大全
- android 显示表情 (二)
- 的覆盖广泛大锅饭的