如何实现自动回帖?????

yxw860516 2009-04-14 08:16:04
#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值的获得???
希望大家能给我一些建议,非常感谢!!!!
...全文
223 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jndingxin 2009-11-18
  • 打赏
  • 举报
回复
(⊙o⊙)…
jndingxin 2009-11-18
  • 打赏
  • 举报
回复
(⊙o⊙)…
yxw860516 2009-04-15
  • 打赏
  • 举报
回复
谢3楼的回复,我试试
希望其他朋友也能给我些建议。。。。。。
biweilun 2009-04-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yxw860516 的回复:]
我是用VC编写的,还能用其他方法获取实时的cookie吗???
还有我按下面的格式发送正确吗???
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");


希望大家能帮我解答一下,非常感谢!!!
最好能用 代码的形式,再次感谢
[/Quote]
不是说了嘛,用流读取IE缓存文件夹中的对应文件。C:\Documents and Settings\Administrator\Cookies里面
yxw860516 2009-04-15
  • 打赏
  • 举报
回复
还是不行诶。。。。。。
  • 打赏
  • 举报
回复
很强大..
oyljerry 2009-04-14
  • 打赏
  • 举报
回复
FindFirstUrlCacheEntry/FindNextUrlCacheEntry查询cookie...
yxw860516 2009-04-14
  • 打赏
  • 举报
回复
我是用VC编写的,还能用其他方法获取实时的cookie吗???
还有我按下面的格式发送正确吗???
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");


希望大家能帮我解答一下,非常感谢!!!
最好能用 代码的形式,再次感谢
biweilun 2009-04-14
  • 打赏
  • 举报
回复
cookie的值通过 javascript:alert(document.cookie)可以得到,或是从IE缓存中直接用流读取。发送数据直接用你的抓包软件的格式字符就好了

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧