PersonalCorpus 版 (精华区)

发信人: fairman (嫩白菜), 信区: Test
标  题: 弱
发信站: 哈工大紫丁香 (2003年11月13日19:47:13 星期四), 站内信件


'注意,使用本脚本时,在D:\下创建一个b.txt, 
'脚本把b.txt每行内容依次作为文章标题发表在bbs上 



Option Explicit 
Main 
'MsgBox ("Script End") 


Function TrimAll(strIn) 
'除去字符串中所有可能的空格,tab等 
Dim s,c, i 
s = Trim(strIn) 
TrimAll = "" 
for i = 1 to Len(s) 
c = Mid(s, i, 1) 
if (Asc(c) = 9) Then 
Else 
TrimAll = TrimAll + c 
End if 
Next 
End Function 

Sub Main() 
Const nTimeout = 20 
Const ForReading = 1 
Dim bConnect, nTime, nScreenHeight, strScreenLine, nDelay 

Dim fso, f1, f2, ts, s 
Set fso = CreateObject("Scripting.FileSystemObject") 

Set ts = fso.OpenTextFile("d:\b.txt", ForReading) 
'b为一个文本文件,脚本把b.txt每行内容依次作为文章标题发表在bbs上 

While(Not ts.AtEndOfStream) 
s = ts.ReadLine() 
s = TrimAll(s) 
If s <> "" Then 
if ( Not Expect("离开", 1, 10)) Then 
'判断屏幕第2行是否有"离开",主要用来判断当前是否在文章列表中 
'Error? 
Exit Sub 
End If 

STermScript.SendConvertedData ("^P") '发表文章 
STermScript.Delay 200 '短暂延时 

If (Not ExpectCursor("标题:", 10)) Then 
'当前光标处是填写标题的地方? 
'Error? 
MsgBox("error?") 
Exit Sub 
End If 

STermScript.SendData (s) '填入标题 
STermScript.SendConvertedData ("^M^M") '送出回车 
STermScript.Delay 200 

STermScript.SendConvertedData ("^W") '结束文章编辑 
STermScript.Delay 200 
If (Not ExpectCursor("(S)转信", 10)) Then 
'出现选择菜单"(S)转信, (F)换行发出,(L)不转信, (A)取消,……"? 
'Error? 
STermScript.SendConvertedData ("^[^[$$") '出现错误,设法回到版面列表状态 
Else 
STermScript.SendConvertedData ("^M") '正常,送出回车 
End If 
End if 
Wend 
ts.Close 
End Sub 

Function ExpectCursor(ByRef str, ByVal TimeOut) 
'判断在一定时间内,光标所在行是否出现指定字符串 
Dim starttime 
starttime = Timer 
While (Not InStr(STermScript.GetBuffer(STermScript.GetCursorY()), str) > 0) 
STermScript.Delay (200) 
If (Abs(Timer - starttime) > TimeOut) Then 
ExpectCursor = False 
' MsgBox (str + " not found, timeout") 
Exit Function 
End If 
Wend 
ExpectCursor = True 
End Function 

Function Expect(ByRef str, ByVal l, ByVal TimeOut) 
''判断在一定时间内,指定行是否出现指定字符串 
Dim starttime 
starttime = Timer 
While (Not InStr(STermScript.GetBuffer(l), str) > 0) 
STermScript.Delay (200) 
If (Abs(Timer - starttime) > TimeOut) Then 
Expect = False 
' MsgBox (str + " not found, timeout") 
Exit Function 
End If 
Wend 
Expect = True 
End Function

--
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.38.64.3]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.595毫秒