如何自动 Internet Explorer POST 表单数据
2011-07-25 13:34
381 查看
http://support.microsoft.com/kb/q167658/
#include <windows.h> #define INITGUID #include <initguid.h> #include <exdisp.h> #include <memory.h> HRESULT GetPostData(LPVARIANT pvPostData); void main() { HRESULT hr; IWebBrowserApp* pWBApp = NULL; // Derived from IWebBrowser BSTR bstrURL = NULL, bstrHeaders = NULL; VARIANT vFlags = {0}, vTargetFrameName = {0}, vPostData = {0}, vHeaders = {0}; if (FAILED(hr = CoInitialize(NULL))) { return; } if (FAILED(hr = CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_SERVER, IID_IWebBrowserApp, (LPVOID*)&pWBApp))) { goto Error; } bstrURL = SysAllocString(L"http://<server>/scripts/navpost.asp"); if (!bstrURL) { goto Error; } bstrHeaders = SysAllocString( L"Content-Type: application/x-www-form-urlencoded\r\n"); if (!bstrHeaders) { goto Error; } V_VT(&vHeaders) = VT_BSTR; V_BSTR(&vHeaders) = bstrHeaders; hr = GetPostData(&vPostData); hr = pWBApp->Navigate(bstrURL, &vFlags, &vTargetFrameName, &vPostData, &vHeaders); pWBApp->put_Visible(VARIANT_TRUE); Error: if (bstrURL) SysFreeString(bstrURL); if (bstrHeaders) SysFreeString(bstrHeaders); VariantClear(&vPostData); if (pWBApp) pWBApp->Release(); CoUninitialize(); } // Pack some data into a SAFEARRAY of BYTEs. Return in a VARIANT HRESULT GetPostData(LPVARIANT pvPostData) { HRESULT hr; LPSAFEARRAY psa; LPCTSTR cszPostData = "FName=Matt&Flavor=Mocha+Chip"; UINT cElems = lstrlen(cszPostData); LPSTR pPostData; if (!pvPostData) { return E_POINTER; } VariantInit(pvPostData); psa = SafeArrayCreateVector(VT_UI1, 0, cElems); if (!psa) { return E_OUTOFMEMORY; } hr = SafeArrayAccessData(psa, (LPVOID*)&pPostData); memcpy(pPostData, cszPostData, cElems); hr = SafeArrayUnaccessData(psa); V_VT(pvPostData) = VT_ARRAY | VT_UI1; V_ARRAY(pvPostData) = psa; return NOERROR; }
相关文章推荐
- 如何自动 Internet Explorer POST 表单数据
- Jquery如何序列化form表单数据为JSON对象 C# ADO.NET中设置Like模糊查询的参数 从客户端出现小于等于公式符号引发检测到有潜在危险的Request.Form 值 jquery调用iframe里面的方法 Js根据Ip地址自动判断是哪个城市 【我们一起写框架】MVVM的WPF框架(三)—数据控件 设计模式之简单工厂模式(C#语言描述)
- 如何自动化 InternetExplorer 对 POST 表单数据
- iOS >> POST 上传数据(文件压缩)>>表单上传 (如何设置form格式)
- 如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量
- 如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量
- mysql交互(如何接收表单数据 Get方式,Post方式 (form表单))
- PHP表单提交数据表-自动填充表字段在$_POST中无数据单元
- 如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量
- 使用post方式提交表单如何获取图片数据及其他文本参数[NodeJS]
- 如何将表单数据从一页传递到另一个,通过使用 GET 和 POST 活动服务器页中
- 如何实现网页自动登录?或Java模拟Post表单
- TP5 如何接收表单post所有数据
- 如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量
- struts里面如何自动提交多行表单数据
- 如何用chrome查看提交的post表单数据
- PHP关于如何解决表单POST传参数时,自动加转义字符的问题
- 如何: 自动发送表单数据到 Internet Explorer
- form表单通过GET提交的数据自动生成的链接地址如何伪静态化处理
- 如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量