2009年4月17日星期五

使用VB.NET编写了一个定时登录Dr.COM Hotspot上网验证系统的Windows服务

使用Visual Studio 2005编写,项目类型是Windows服务。
从组件菜单中选择Timer组件,注意默认的Timer组件是System.Windows.Forms.Timer,并不能在服务中使用,要使用System.Timer.Timer组件,可以在工具箱的组件面板上点击右键,出现下面的菜单,选择红色框子圈出的项,从对话框中将需要的组件添加到面板


将正确的Timer组件拖到类的设计面板,设置合适的interval,并将Timer设置为Enable。双击Timer组件,添加代码如下(加粗部分)
Imports System.Text
Imports System.Net
Imports System.Timers
Public Class AutoLogonService
    Protected Overrides Sub OnStart(ByVal args() As String)
        ' 请在此处添加代码以启动您的服务。此方法应完成设置工作,
        ' 以使您的服务开始工作。
    End Sub
    Protected Overrides Sub OnStop()
        ' 在此处添加代码以执行任何必要的拆解操作,从而停止您的服务。
    End Sub
    Private Sub Timer1_Elapsed(ByVal sender As System.Object, ByVal e As System.Timers.ElapsedEventArgs) Handles Timer1.Elapsed
        Dim MyClient As New WebClient
        Dim MyURL As String
        Dim data As String
        Dim postData As Byte()

        MyURL = "http://10.29.0.250/F.htm"
        data = "DDDDD=你的用户名&upass=你的密码&0MKKey=登录 Login"
        postData = Encoding.ASCII.GetBytes(data)
        MyClient.UploadData(MyURL, "POST", postData)
    End Sub
End Class
右击设计视图选择“添加安装程序”,为该服务添加安装程序,并设置项目、安装程序的名称和相关属性。最后生成Service。
Service的安装
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil c:\Dr.COM.LogonService.exe
Service的卸载
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil c:\Dr.COM.LogonService.exe /u
将服务安装后,可以在管理工具|服务中去启动他,这样,即使机器重启或者长时间没数据流量,也能保证不断网,使得某些需要定时联网的程序正常工作
参考资料
  1. http://support.microsoft.com/kb/842793/zh-cn
  2. http://support.microsoft.com/kb/820639/zh-cn
  3. http://lonely7345.javaeye.com/blog/249015

没有评论:

发表评论