如何实现自动回帖?????
#include "stdafx.h"
#include <windows.h>
#define INITGUID
#include <initguid.h>
#include <exdisp.h>
#include <memory.h>
HRESULT GetPostData(LPVARIANT pvPostData);
int _tmain(int argc, _TCHAR* argv[])
{
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 0;
}
if (FAILED(hr = CoCreateInstance(CLSID_InternetExplorer,
NULL,
CLSCTX_SERVER,
IID_IWebBrowserApp,
(LPVOID*)&pWBApp)))
{
goto Error;
}
bstrURL = SysAllocString(L"http://********/viewthread.php?tid=1122929&extra=page%3D1&page=17");
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();
return 0;
}
HRESULT GetPostData(LPVARIANT pvPostData)
{
HRESULT hr;
LPSAFEARRAY psa;
//LPCTSTR cszPostData = _T("FName=Matt&Flavor=Mocha+Chip");
LPCTSTR cszPostData=(L"formhash=cc053de0&subject=&usesig=1&message=111111111111",
L"?action=reply&fid=64&tid=1122929&extra=page%3D1&replysubmit=yes&infloat=yes&handlekey=fastpost&inajax=1");
//LPCTSTR cszPostData=System.Text.Encoding.GetEncoding("gb2312").GetBytes("?action=reply&fid=64&tid=1122929&extra=page%3D1&replysubmit=yes&infloat=yes&handlekey=fastpost&inajax=1");
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;
}
朋友之托,希望能帮他做个顶贴机。。。
这是我的程序,参考了别人的源程序,改进而得。
能编译通过,运行后能打开我指定的网页。。。。。。。但是没有进行回帖
自己觉得对POST发送的数据不是很了解,尤其是我回复的内容应该怎么添加在程序中,我通过抓包软件看到了,我在网页进行回帖发送的格式,但发送数据不知道怎么加,还有COOKIE值的获得???
希望大家能给我一些建议,非常感谢!!!!