用VB.NET做个论坛发帖软件

作者:Tuenhai.com MSN: king#tuenhai.com

版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明
http://www.Tuenhai.com/

  题记:如果你经常泡各种论坛发表宏论,如果您想把您的软件在极短时间内提交到有关网站,如果您想把您的网站快速登陆各搜索引擎,如果您想做个论坛自动发贴软件,本篇文章可能对您有所帮助。

   开发工具:Microsoft Visual Studio .NET 2003
   操作系统:Windows XP

                  不编程实现自动发帖                  

  不编程也能实现论坛自动发贴?
  答案肯定的。2003年10月前,tuenhai还未学习编程(VB6),但tuenhai已经实现论坛自动发帖器。虽然现在tuenhai已不用这种方法,但可能对有些朋友有用,还是在此介绍一下实现方法。
  实现原理是:借用模拟键盘、鼠标操作的软件,抓取输入框座标,然后模拟移动鼠标到指定座标,模拟键盘输入字符,模拟回车或点击相应位置完成自动发贴。当然,你得编写相应自动化脚本,虽有一点难度,但对于编程来说,应该是简单的。
  有三个模拟键盘、鼠标类软件,功能比较好,在《VS.NET学习方法论》http://www.Tuenhai.com/已经有所介绍。
  一. PCWorker(http://www.pcworker.net)
   PCWorker功能极多,更重要的是,PCWorker中的脚本代码都是看得懂的代码:

Press VK_F1 // 模擬按 F1 鍵 Press VK_CTRL+VK_F // 模擬按 Ctrl + F 鍵
  是不是不太难?

  二. “按键精灵”(http://www.vrbrothers.com/cn/qmacro)
  相对来说,按键精灵容易使用,但只有PCWorker的少部分功能。比如PCWorker可输出随机数,按键精灵就不行。
  按键精灵的脚本代码不太容易看懂,比如
  KeyPress 82 1
   您看得出按的是哪个键吗?

  三. EzScript(http://ezscript.seed.cx/)
  EzScript的功能也很多。但tuenhai在Windows XP下试用自动发贴时,没有反应。

   初学者建议使用按键精灵,进阶则用PCWorker。使用教程请参考作者网站。

                   用AxWebBrowser控件做论坛自动发贴软件

 
   AxWebBrowser控件即VB6中的WebBrowser控件。
   用AxWebBrowser做论坛批量发贴软件,使用时先添加对AxWebBrowser控件和MSHTML的引用。
   先Navigate到指定网址。然后用以下代码等待网页加载完毕:

Do While brow.Busy
  Application.DoEvents()
Loop
  然后调用发帖过程。

Public Sub fill()
  On Error Resume Next
  Do While brow.Busy
    Application.DoEvents()
  Loop

  Dim webDoc As Object = brow.Document.all
  Dim webTag As Object
  Dim lengthTag As Integer = webDoc.length - 1

  For countTag As Integer= 0 To lengthTag
    webTag = webDoc.item(countTag)
    Select Case Strings.LCase(webDoc.item(countTag).tagname)
      Case "textarea"     '网页中的文本框
        Select Case webTag.name
          Case "body"   '"body"来自网页源代码,不同网站很可能不同,你根据实际修改。下同。
            webTag.value = strBody   '这是预先定义的值,下同。
         End Select

      Case "select"       '网页中的下拉选择框
        Select Case webTag.name
          Case "month"   '选择月份,这里略去年、日的选择,因为原理相同。
            webTag.all.item(1).selected = True  '选择第一个值
         End Select

       Case "input"  '网页中的输入框
        Select Case Strings.LCase(webTag.type)
          Case "text"     '文本
            Select Case webTag.name
              Case "name", "userid", "nickname" '用户名
                webTag.value = strName
              Case "subject" '标题
                webTag.value = strSubject
              Case "regid" '注册码
                webTag.value = strRegid
              Case "username", "realname"
                webTag.value = strUsername
              Case "cardnumber"
                webTag.value = strCardNumber
              Case "homephone"
                webTag.value = strHomephone '电话号
              Case "url_title" '链接名称
                webTag.value = urlTitle
              Case "url"  '链接
                webTag.value = url
              Case "email" 'email地址
                webTag.value = email
              Case "img"  '图片  
                webTag.value = img
              Case "midi"  '音乐
                webTag.value = midi
              Case "year"  '年
                webTag.value = strYear
              Case "prompt" '找回密码提示问题
                webTag.value = strPrompt
              Case "answer" '找回密码答案
                webTag.value = strAnswer
            End Select
          Case "password"  '密码
            Select Case webTag.name
              Case "passwd", "password", "confirm", "repasswd" '密码,确认密码
                webTag.value = strPass
            End Select
          Case "checkbox"  '单选框
            Select Case webTag.name
              Case "emailme"  'email通知tuenhai
                webTag.checked = True  
            End Select

        End Select

     End Select
   Next

  brow.Document.forms(0).submit()  '许多网页表单,这一句简单代码即实现自动提交

End Sub 
于是,主过程是这样:

Public Sub autoAdd()
  brow.Silent = True '不弹出窗口
  brow.Navigate("http://www.Tuenhai.com") ' tuenhai的小站为例
  Do While formBrowNetsh.brow.Busy  '等待网页加载完毕
    Application.DoEvents()
  Loop
  Call fill()
End Sub
  以上代码可实现可视化自动注册和论坛自动发帖工具。
   还有几个问题有待解决:
   一. 有的网站要填上识别码数字才能注册或发言,如何用程序来实现自动识别识别码图片上的数字?
   二. 有的网站一进去就会跳出一个欢迎对话框,程序的运行就被暂停。
   三. 对于自动注册和发言来说,加载较慢的图片、Flash、音乐等并不是必需的。

  
              用HttpWebRequest类做论坛快速发帖器

  用HttpWebRequest类做论坛发贴机就简单多了。
  我们始终不能忘记,最好的教程是MSDN,在Microsoft Visual Studio .NET 2003“搜索”中敲入HttpWebRequest,抄来一些东东(事实上许多教程书籍都是从MSDN上抄的):
   命名空间: System.Net
   HttpWebRequest 类对 WebRequest 中定义的属性和方法提供支持,也对使用户能够直接与使用 HTTP 的服务器交互的附加属性和方法提供支持。
   不要使用 HttpWebRequest 构造函数。使用 WebRequest.Create 方法初始化 HttpWebRequest 的一个新实例。如果 URI 的方案是 http:// 或 https:// ,则 Create 将返回 HttpWebRequest 实例。
   GetResponse 方法向 RequestUri 属性中指定的 Internet 资源发出同步请求并返回包含该响应的 HttpWebResponse 实例。可以使用 BeginGetResponse 和 EndGetResponse 方法对 Internet 资源发出异步请求。
   当要向 Internet 资源发送数据时, GetRequestStream 方法返回用于发送数据的 Stream 实例。  BeginGetRequestStream 和 EndGetRequestStream 方法提供对发送数据流的异步访问。  
   如果在访问 Internet 资源时发生错误,则 HttpWebRequest 类将引发 WebException 。 WebException.Status 属性是 WebExceptionStatus 值之一,它指示错误源。当 WebException.Status 为 WebExceptionStatus.ProtocolError 时, Response 属性包含从 Internet 资源接收的 HttpWebResponse 。
  

Shared Sub postData()
  Dim httpUrl As New System.Uri("http://www.Tuenhai.com?" & "name=yourName&pass=yourPass&cardnumber=yourCardNumber")
  Dim req As HttpWebRequest
  'req.Timeout = 10000 '设置超时值10秒
  req = CType(WebRequest.Create(httpUrl2), HttpWebRequest)
  req.Method = "POST"
  req.ContentType = "application/x-www-form-urlencoded"
  Dim bytesData() As Byte =   System.Text.Encoding.ASCII.GetBytes(""name=yourName&pass=yourPass&cardnumber=yourCardNumber")
  req.ContentLength = bytesData.Length
  Dim postStream As Stream = req.GetRequestStream()
  postStream.Write(bytesData, 0, bytesData.Length)   '以上向服务器post信息。
  Dim res As HttpWebResponse = CType(req.GetResponse(), HttpWebResponse) '以下获取服务器返回信息
  Dim reader As StreamReader = _
  New StreamReader(res.GetResponseStream, System.Text.Encoding.GetEncoding("GB2312"))
  Dim respHTML As String = reader.ReadToEnd()
    MsgBox(respHTML)  '这就是向网络服务器post后返回的信息
    MsgBox(res.StatusCode.ToString)  '向网络服务器post后返回的状态码
  res.Close() '关闭

End Sub

  用AxWebBrowser控件做论坛发贴机留有三个问题,用HttpWebRequest类来实现,后二个问题都不复存在。而且,用HttpWebRequest类来实现论坛发帖器的速度要快得多。但是,同样的?
  有的网站要填上识别码数字才能注册或发言,如何用“论坛自动发贴机”来实现自动识别识别码图片上的数字?

  我们在主过程里加上线程,因为我们以后要用多线程做自动发帖机啊。用多线程做论坛自动发贴器在VB6中不好实现,在VB.NET中做自动发帖工具却不难。
 

Dim threadAdd As System.Threading.Thread '定义线程 
Public Sub threadAutoAdd()
  threadAdd= New System.Threading.Thread(AddressOf postData)  '创建线程实例
  threadNetsh.Start()  '开始线程
  '别忘了在Sub postData()的最后加上threadAutoAdd.Abort()来关闭线程
  '或者在这里加上判断Sub postData()完毕的代码,如果完毕就关闭线程
End Sub
  Visual Studio .NET 2003 是一个全面的开发工具,用于快速构建面向 Microsoft Windows? 和 Web 并连接 Microsoft .NET 的应用程序,是否极大地提高了我们的开发效率呢?

时间: 2024-10-03 22:50:43

用VB.NET做个论坛发帖软件的相关文章

请教用VB.NET做点对点文件传输软件

问题描述 小弟没有多少编程开发的经验,对.NET也不太了解,希望有高手指点一下啊~不胜感激!!希望能说的详细点,能教我更好啊! 解决方案 解决方案二:路过帮顶=============11月6日,论坛升级公告,积分已经做了调整!http://topic.csdn.net/u/20081107/11/b27dc75f-14b1-4594-9de3-5b18d9e36a11.html此次调整增加了两个新的可用分获取渠道:1:帖子被推荐(加精)后,帖主可以获得88分的可用分奖励:2:帖子结帖后会返还帖

自己用VS2005+ACCESS+VB.NET做了个学员档案管理软件,怎么占资源这么大?

问题描述 自己用VS2005+ACCESS+VB.NET做了个学员档案管理软件,占用内存40M,怎么会这么大?请指教! 解决方案 解决方案二:用到的对象要及时释放解决方案三:正常的,最小化再恢复,可以使内存占用看起来小一些,因为都跑到虚拟内存上去了.解决方案四:不要將大量數據加載到內存裡面解决方案五:使用SqlDataReader读取数据,dataset太在内存了.

.net做论坛管理软件

问题描述 .net做论坛管理软件,应如何做,涉及到那些知识点,请说一下 解决方案 解决方案二:首先在论坛后台管理界面给设计好.要实现一些什么样的功能.解决方案三:数据库,语法,做好需求,动手做.解决方案四:技术上至少要掌握数据库,asp.net,ado.net.

论坛发帖还是抢沙发?一个外链必须面对的问题

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 论坛发帖还是抢沙发?一个外链必须面对的问题!其实这个问题可以分得更新,如:什么是沙发,为什么要抢沙发,抢沙发的好处,如何抢沙发?哪些论坛值得抢沙发呢?ybsong是seo,故本文主要从seo角度讨论这些问题.但更多的时候,抢沙发是论坛灌水的乐趣,是朋友间调侃的方式,人文方面的问题不在本文讨论之列. 一.什么是沙发,为什么叫沙发,沙发的意思是什

学习一下:论坛群发软件宣传要慎重

网站宣传方法有很多的途径,群法软件群发就是其中一个.群法可以替代手工,节约劳动力,并且效果也挺好,覆盖面广.不过今天就来谈谈群发带来的流量到底是个什么样的流量.  本人使用的是论坛群发软件,对自己的网站进行了1个星期的群发宣传.由于能群发的论坛都是注册和发贴限制比较松的,所以被宣传的论坛上留下的宣传贴也不只是我一个人的,通常一个贴出去N个贴把它给淹了下去,如果贴子标题不选得惹眼球,群发根本就是在做无用功.在群发之前就要精心的设计好自己要发贴的标题和内容,标题一定要是目前最新颖的内容里一定要有大量

分享地方论坛推广及运营  做地方论坛也一年多了,我们这里是个县级市,地方小网站没几个,人气也不高,不过尽早做,坚持下来总会有发展的,下面分享一点我做地方论坛的经验,比较适合于较小的城市。经验

做地方论坛也一年多了,我们这里是个县级市,地方小网站没几个,人气也不高,不过尽早做,坚持下来总会有发展的,下面分享一点我做地方论坛的经验,比较适合于较小的城市. 1.版块设置 信息版块:可开设招聘求职.房屋租售.跳蚤市场等版块,提供互动实用的信息,有很多人是没有闲情泡论坛的,开设这样的版块可以吸引他们来找实用的信息,增加人气. 新闻版块:同信息版块的作用一样,我认为还可以相对增加网站的权重. 地方特色:地方风景名胜,名人,名产介绍等,地方站必须的版块,很能吸引本地人气. 同城版块:讨论同城话题,

分享站长做BBS论坛的优化的一个小细节

农民工大概有两天没有写原创文章了,昨天和群里的朋友在YY交流了一下,主要都是热心的朋友帮忙解答站一排论坛最近被百度降权的讨论.这里先感谢一下长沙的西风对站一排的大力支持.我也根据自己的一些实战经历想分享一下论坛优化的一些看法.同时针对最近不少站长朋友的论坛被降权,笔者今天想说说关于做论坛的一些优化的小细节. 对于这次百度最新推出的算法我不做过多的说明,个人觉得其中的一点对我们做论坛的朋友是值得关注的--大量 无价值翻页. 具体公布内容如下: 大网站由于内容过多势必会有一些翻页机制,而有些翻页由于

论坛群发软件有用吗

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 这个主题就是论坛群发软件有用吗?  1,如果这款软件是 一款大众软件.说明了这款软件用的人有很多很多.因为优秀的论坛都屏蔽了该群发软件,垃圾论坛上全是类似的广告能发上去的论坛都是垃圾,优秀的都发不上去 . 3,一般来说,大家都是使用该群发软件来发关键词的反链接来刷排名, 同样的道理,连我都知道他是群发软件了,自然搜索引擎更是知道他是群发软件,

ASp.net做的论坛数据库是怎么存储图片地址的

问题描述 我在做一个论坛,论坛发帖,回复都可以用富文本编辑器上传图片,可是我不知道用户想上传多少张图片,我该怎样在数据库中存储图片的地址呢,让每个用户想上传多少张图片都可以,打开帖子的时候都能看到用户上传的图片呢 解决方案 解决方案二:我知道了,,是这样存储的<imgsrc="图片路径"/>...真是ri了狗了解决方案三:引用1楼dolis456的回复: 我知道了,,是这样存储的<imgsrc="图片路径"/>...真是ri了狗了 爽么?解决