用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 For countTag As Integer= 0 To lengthTag Case “select” ’ 页中的下拉选择框 Case “input” ’ 页中的输入框 End Select End Select 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 |
以上代码可实现可视化自动注册和论坛自动发帖工具。
还有几个问题有待解决:
一. 有的 站要填上识别码数字才能注册或发言,如何用程序来实现自动识别识别码图片上的数字r> 二. 有的 站一进去就会跳出一个欢迎对话框,程序的运行就被暂停。
三. 对于自动注册和发言来说,加载较慢的图片、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) ’以下获取服务器返回信息 End Sub |
用AxWebBrowser控件做论坛发贴机留有三个问题,用HttpWebRequest类来实现,后二个问题都不复存在。而且,用HttpWebRequest类来实现论坛发帖器的速度要快得多。但是,同样的r> 有的 站要填上识别码数字才能注册或发言,如何用“论坛自动发贴机”来实现自动识别识别码图片上的数字p>
我们在主过程里加上线程,因为我们以后要用多线程做自动发帖机啊。用多线程做论坛自动发贴器在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 |
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!