我最近接触webbrowers 这个控件比较多,感觉用起来比较顺手吧。可以做很多操作。
貌似很多网络模拟有时候都内置这个控件或者类似的控件,但这样子速度就不能跟那些单纯用API 构建数据包比了。
我一般网页模拟都会用自己封装的WININET API进行访问。
webbrower控件可以加载本地html ,这个东西就非常好了。我们可以提取网页一些js 结合html 进行各种调用,这样就完全得到沃恩想要东西,可以任意作何。
我们可以加载我么需要js进行各种调用。
注意我们使用时候,一定要webbrower控件加载html加载完毕,如果没有加载完毕就调用一个方法会失败。这个我测试好久才方向。
我们可以在html构建一个特许函数用来被客户端任意调用,先看一下这个js例子
<html> <head> <title> hello world </title> <script type="text/javascript" src="raphael.js"></script> </head> <body> <script> function hh(a) { //alert(a); var f1=(new Function(a)); return f1(); } </script> </body> <html>
客户端调用
CComVariant comKey2; CComVariant func2 = Pro.c_str(); spScript.Invoke1(L"hh",&func2,&comKey2); string InfDecKey= _com_util::ConvertBSTRToString( comKey2.bstrVal);
客户端只要传入字符串就可以构建成任意函数,这个相当的灵活。
我们webbrows 加载一次后就不需要再加载,速度基本比原始调用没有任何差别了。
看网上一些写的博客,对自己项目开发有一些帮助,还是感谢那些经常写博客人,这样就会减少别人走一些弯路,所以以后我自己也要多写一些技术的积累。