分享
 
 
 

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

王朝vb·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

用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 的应用程序,是否极大地提高了我们的开发效率呢?

[/url][url=http://www.Tuenhai.com]http://www.Tuenhai.com

2004年1月24日

Tuenhai简介:Tuenhai同学对儒释道医卜命相有一定研究,对网络及英语最感兴趣,于哲学最有心得.常人利已,圣人利他,我非圣人,取道中庸.希望与各位精英交流,MSN:king#tuenhai.com

我的网站: http://www.Tuenhai.com/

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有