早些天,因项目需要做了一个自动登陆网站的ActiveX插件。主要功能就是通过这个插件启动一个IE实例或者使用插件所在的浏览器,
打一个网站(即通过Navigate导航),通过IHTMLDocument2接口找到相关元素,并填入相应的值,最后模拟点击登陆按钮,完成登陆。这种
方法简单,而且理论上属于模拟人工登陆,受限性比较小。但是它有一个缺点,就是有打开登陆页面,填入值的过程,没有直接进入登陆
后的页面看上去更自然。
再次查看MSDN,IWebBrowser2::Navigate声明:
HRESULT Navigate( BSTR url,
VARIANT *Flags,
VARIANT *TargetFrameName,
VARIANT *PostData,
VARIANT *Headers
);
第四个参数是PostData,那是否可以附带PostData数据直接登陆进去呢?向下看
PostData:
[in] Pointer to data to send with the HTTP POST transaction. For example, the POST transaction is used to send data gathered
by an HTML form. If this parameter does not specify any post data, IWebBrowser2::Navigate issues an HTTP GET transaction.
意思是说在这里指定PostData参数与通过 HTML form提交是一样的。当然是可行了。
这个参数的类型是VARIANT,MSDN:
The post data specified by PostData is passed as a SAFEARRAY Data Type structure. The VARIANT should be of type VT_ARRAY and point
to a SAFEARRAY Data Type. The SAFEARRAY Data Type should be of element type VT_UI1, dimension one, and have an element count equal
版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明!