S-term is A smart, SSH enabled, script extendable TERM,Sterm最强大的功能就在于script extendable,所以有次我戏说Sterm不是一个Telnet工具,而是一个开发工具,一个可以使用vbscript二次开发的Telnet Application Framework。咳咳。

关于如何在程序中应用Script Control
可以参考Exploring the Microsoft Script Control

以下所做的只适用于鼓浪听涛BBS,源于我在鼓浪听涛增加了按L显示文章URL的特性,有人提出能不能按L就直接弹出浏览器查看文章。。。咳咳,这个应该是Term做的事情,BBS系统本身想做也做不了。所以我就打算用Sterm来玩玩这个功能,先前也曾经用Sterm写过聊天机器人,鉴于某些原因,没有公布源代码呵呵。

这个脚本的功能是,你在文章前面按L,则会自动使用默认浏览器打开这篇文章并激活,同时BBS窗口回到文章列表。非常方便。

本修改

  1. 安全,Norton报告恶意脚本请简单得忽略他,因为我用了2个正则表达式验证,如果你想加入更多的验证,请自行加入呵呵。
  2. 与原代码耦合度低,增加方便。
  3. 代码编写工整,尽量节省系统资源耗费。

首先打开Sterm安装目录,把Script\control.vbs这个文件做个备份,接着在Sterm内,系统设置使用系统控制脚本,关闭对话框后加载新脚本。

用文本编辑器打开Script\control.vbs。

继续浏览查看代码。

Class STermVariantObj  

内添加

	'****************************************************************  

	'鼓浪听涛:按L在浏览器内打开文章  

	'****************************************************************  

	Public blnKeyLPressed  

Sub InitObj(varobj)  

内添加

	varobj.blnKeyLPressed = False  

Sub STerm_OnMouseKBEvent(ID, nEventID, wParam, lParam)  

内添加

	Set	varobj = GetVariantObjByID(ID)  

		Case KEYBOARD_ONCHAR  

			If nChar = Asc("L") Then  

				varobj.blnKeyLPressed = True  

			End If  

最后加入,有打开就有关闭

	Set varobj = Nothing  

Sub STerm_OnDataCome(ID)  

	If (obj.nConnectionType = STERM_CONNECTION_BBS) Then  

内添加

		STerm_LaunchExplorerIfKeyLPressed(ID)		  

添加函数

Sub STerm_LaunchExplorerIfKeyLPressed(ID)  

	Dim wsExplore  

	Dim obj, varobj  

	Dim strLine  

	Dim regEx  

	Set	varobj = GetVariantObjByID(ID)  

	If varobj.blnKeyLPressed Then  

		Set obj = STermControlScript.GetWindowObj(ID)  

		Set regEx = new RegExp  

		'按任何键继续...  

		regEx.Pattern = "^\s+按任何键继续\.\.\.\s+$"  

		strLine = obj.GetBuffer(obj.GetScreenHeight() - 1)  

		If regEx.Test(strLine) Then  

			'http://bbs.xmu.edu.cn/bbscon?board=XMUExpress&file;=M.1073963564.A  

			regEx.Pattern = "^http://bbs\.xmu\.edu\.cn/bbscon\?board=(\w+)?&file;=M\.(\d+)?\.A\s+$"  

			strLine = obj.GetBuffer(obj.GetScreenHeight() - 2)  

			If regEx.Test(strLine) Then  

				Set wsExplore = CreateObject("WScript.Shell")  

				wsExplore.Run(strLine)  

				obj.SendData " "  

				Set wsExplore = Nothing  

			End If  

		End If  

		varobj.blnKeyLPressed = False  

		Set regEx = Nothing  

		Set obj = Nothing  

	End If  

	Set varobj = Nothing  

End Sub  

打开系统设置,选上关闭对话框后加载新脚本。关闭对话框。脚本开始运作。下次打开Sterm自动生效。