`
hereson
  • 浏览: 1427149 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

BBS注册机(vb script, telnet, sterm)

    博客分类:
  • vbs
阅读更多

#include "lib.vbs"

Const nTimeout = 3  'in second

Const NewSucceed = 0
Const NewFaild = 1
Const LimitedNew = 2
Const IDExist = 3

Const NickLen = 38
Const IDLenMin = 2
Const IDLenMax = 12

WantedIdFile = "id_wanted.txt"
DoneIdFile = "id_done.txt"

'Information used fro registration
Const strPassWord = "!@#$%^"
Const strNickName = "GRE Word List"
Const strRealName = "我爱背单词"
Const strDepartment = "浙江大学计算机学院"
Const strAddress = "浙江大学玉泉校区30舍"
Const strGrade = "2001"
Const strPhone = "87931624"

'Option Explicit
Main
MsgBox ("Script End")


Sub Main()

 'Dim bConnect, nTime, nScreenHeight, strScreenLine, nDelay
 
 Dim fsoWanted, fsoDone, tsWanted, tsDone
 Dim strLine, strID, strNick
 Dim pos

    Dim NewRegistResult

 Set fsoWanted = CreateObject("Scripting.FileSystemObject")
 Set fsoDone = CreateObject("Scripting.FileSystemObject")
 Set tsWanted = fsoWanted.OpenTextFile(WantedIdFile, ForReading)
 Set tsDone = fsoDone.OpenTextFile(DoneIdFile, ForAppending, True)

 Do While (Not tsWanted.AtEndOfStream)
        strLine = tsWanted.ReadLine
        pos = InStr(strLine, " ")
        strID = Left(strLine, pos-1)
        strNick = Mid(strLine, pos+1, NickLen)
        strID = TrimAll(strID)

        If (strNick = "") Then
            strNick = strNickName
        End If

        If (Len(strID) >= IDLenMin And Len(strID) <= IDLenMax) Then    'lenght of ID must in [2, 12]
            ReconnectHost()
            NewRegistResult = NewAndRegistrID(strID, strNick)
            If (NewRegistResult = NewSucceed) Then
                tsDone.WriteLine(strID)                     '记录注册成功的ID
            ElseIf (NewRegistResult = IDExist) Then
                tsDone.WriteLine("# "+strID+" "+strNick)    '记录冲突的ID
            ElseIf (NewRegistResult = NewFaild) Then
                tsDone.WriteLine("@ "+strID+" "+strNick)    '记录注册失败的ID
            ElseIf (NewRegistResult = LimitedNew) Then
                tsDone.WriteLine("$已经到达每日注册上限")   '不能再注册了
                STermScript.Disconnect()
                Exit Do
            End If
            STermScript.Disconnect()
        Else
            tsDone.WriteLine("& "+strID+" "+strNick)    '记录长度出错的ID
        End If

        StermScript.Delay(500)    '延时
    Loop
 

 tsWanted.Close
 tsDone.Close
 
End Sub


'************************************************************
'* Function: NewAndRegistrID(ByRef strIDWanted)              *
'* Return Value:                                            *
'* 新建一个帐号                                             *
'************************************************************
Function NewAndRegistrID(ByRef strIDWanted, ByRef strNick)

'Return Value:
'Const NewSucceed = 0
'Const NewFaild = 1
'Const LimitedNew = 2
'Const IDExist = 3

    Dim nScrH, strLine, strLeft

    '新建一个帐号
 If (Not WaitUntil("请输入帐号", nTimeout)) Then
  NewAndRegistrID = NewFaild
  Exit Function
 Else
  STermScript.SendData("new" + Chr(13)) '发送new
 End If

    '您今天不能再申请新帐号了
    If (InStr(STermScript.GetBuffer(STermScript.GetCursorY()), "不能再申请") > 0) Then
        NewAndRegistrID = LimitedNew
        Exit Function
    End If

 If (Not WaitUntil("请输入帐号名称", nTimeout)) Then
  NewAndRegistrID = NewFaild
  Exit Function
 Else
  STermScript.SendData(strIDWanted + Chr(13)) '输入要新建的ID
 End If


    StermScript.Delay(500) '延时,等待ID冲突判断

    '此帐号已经有人使用
    If (InStr(STermScript.GetBuffer(STermScript.GetCursorY()-1), "已经") > 0) Then
        NewAndRegistrID = IDExist
        Exit Function
    End If


 If (Not WaitUntil("请设定您的密码", nTimeout)) Then
  NewAndRegistrID = NewFaild
  Exit Function
 Else
  STermScript.SendData(strPassWord + Chr(13)) '输入密码
 End If

 If (Not WaitUntil("请再输入一次你的密码", nTimeout)) Then
  NewAndRegistrID = NewFaild
  Exit Function
 Else
  STermScript.SendData(strPassWord + Chr(13)) '再次输入密码
 End If


 '跳过欢迎屏幕
    Do
        STermScript.SendData(goDown)
        'StermScript.Delay(100)
    Loop Until (InStr(STermScript.GetBuffer(STermScript.GetCursorY()), "请输入您的昵称") > 0) '调到输入昵称的那行

    StermScript.SendData(strNick + Chr(13)) '输入昵称
    StermScript.SendData(strRealName + Chr(13)) '输入真实姓名


 If (Not WaitUntil("您确定要填写注册单吗", nTimeout)) Then
  NewAndRegistrID = NewFaild
  Exit Function
 Else
  STermScript.SendData("Y" + Chr(13)) '再次输入密码
 End If

    StermScript.SendData(strRealName + Chr(13))     '真实姓名: 马甲
    StermScript.SendData(strDepartment + Chr(13))   '学校院系: 浙江大学计算机学院
    StermScript.SendData(strAddress + Chr(13))  '详细住址: 浙江大学玉泉校区30舍
    StermScript.SendData(strGrade + Chr(13))    '年级(如1999): 2001
    StermScript.SendData(strPhone + Chr(13))    '联络电话: 87931624

    '以上资料是否正确, 按 Q 放弃注册 (Y/N/Quit)? [N]:
 If (Not WaitUntil("以上资料是否正确", nTimeout)) Then
  NewAndRegistrID = NewFaild
  Exit Function
 Else
  STermScript.SendData("Y" + Chr(13)) '再次输入密码
 End If

 NewAndRegistrID = NewSucceed
 
End Function

分享到:
评论

相关推荐

    STerm bbs远程登陆软件

    (Smart Terminal)是一款针对国内BBS特点设计的能在各Windows平台下运行的专用远程登录软件(也可以作为 普通Telnet客户软件,用于任何Telnet站点的登录)。它在运行中对用户和服务器之间的信息进行了分析,知道用户在 ...

    Telnet软件STerm

    她除了具有一般Telnet工具的功能,还具有以下特点: 远程登陆工具条 对BBS的鼠标支持 浮动输入 复制粘贴屏幕文字矩形区域选择 代颜色编码复制 防止发呆功能 历史消息纪录 历史屏幕 用户自定义按键 支持socks proxy ...

    sterm,telnet

    sterm,telnet工具。操作简单,容易

    sterm:简单术语,基于 vbeterm

    特征不支持标签无服务器支持使用 VTE 2.90 (GTK3) 单文本文件配置颜色主题支持示例配置配置进入$HOME/.config/sterm/sterm.conf [main]WordChars=-A-Za-z0-9:./?%&#_=+@~" Themes=SolarizedDark;SolarizedLight...

    Sterm操作终端。支持SSH2安全协议

    Sterm操作终端。支持SSH2安全协议

    STerm-开源

    适用于嵌入式开发人员和系统管理员Linux串行终端。 旨在取代minicom。

    Python库 | sterm-6.0.0a6.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:sterm-6.0.0a6.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    sterm-extatter-

    溪流抽水机器人 ㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤ该Bot可以从视频文件中提取音频和字幕。发送任何有效的视频文件,机器人将向您显示其中可以提取的可用流!!...TOKEN-从@BotFather获取机器人令牌APP_ID-来自my.telegram....

    远程登录软件s-term

    作为一个telnet软件,s-term除了具有一般telnet工具的功能,还专门针对上bbs站的需要,提供了一些很实用的功能,其中很多功能与cterm有得一拼。 s-term支持bbs的鼠标浏览。自动识别屏幕上的菜单,支持使用鼠标点击...

    S-Term v2.549 中英文版.RAR

    一个能在win95/98/nt平台下运行的远程登陆软件,她设置简单,使用方便,她采用多文档界面,能在一个框架中打开多个窗口,最小化时能缩小为图标,隐藏在任务栏中。如果您以前用过Netterm的话,您会发现她们其实是很...

    simple-terminal:用JavaScript编写的简单(愚蠢,愚蠢,Gi头)终端机,可以拉屎和咯咯地笑

    STerm v1.0 STerm是基于JavaScript的终端Web应用程序。 这个头采用了一些非常基本的,写得不好的概念,这些概念是从流行的基于Unix的系统终端中得出的。 我在几个小时内为此编写了初始代码:P 实时示例: : 快速...

Global site tag (gtag.js) - Google Analytics