查看文章 |
一般测试语言总要从 Hello Wolrd 例子开始,而且一般都是打印一个字符串,为了突出 WSH 的魅力,UMU 打算从“语音 Hello Wolrd”开始。就是说,我们的第一个程序不是冒出个黑黑的 Console 窗口(当然更不是 DOS 虚拟机窗口),也不是一个对话框,而是从您的耳机或者音箱说出一段话。 把下面代码保存为 Hello.VBS: Dim objTTS Set objTTS = CreateObject( "SAPI.SpVoice" ) objTTS.Speak "[UMU WSH 教程]您好 WSH!", 0 Set objTTS = Nothing 这个代码里只有 4 行,必须的只有 2 行,头尾的 2 行去掉也可以。 如果您的系统是正确安装的 XP/2003,那么运行后可以听到程序的发音,如果当前发音员是 Microsoft Simplified Chinese,那么您会听到“中括号 UMU WSH 教程中括号您好 WSH”;如果是 Microsoft Sam/Mary/Mike,那么会听到“UMU WSH WSH”。 大家可以找到 "%ProgramFiles%\Common Files\Microsoft Shared\Speech\sapi.cpl",运行看看,这个控制面板可以更改默认发音员,如果是 Sam/Mary/Mike 这三个老美,他们是不懂说中文的,改成“Microsoft Simplified Chinese” 就可以说中文了,不过默认安装的系统应该是没有,装了一些应用后才会有,比如“金山词霸”(金山词霸会发音只是用了微软的 TTS 而已,大家也可以用,这个功能很容易实现的)。 再看一下 JS 版的,保存为 Hello.JS: var objTTS = new ActiveXObject( "SAPI.SpVoice" ); objTTS.Speak( "[UMU WSH 教程]您好 WSH!", 0 ); delete objTTS; 这个代码里只有 3 行,必须的只有 2 行,最后一行去掉也可以。 领教完 WSH 调用 COM 的便利性后,我们还是说点正常的 Hello World 吧,有很多写法,先来 VBS 版: ' 第一种 ' 第二种 ' 第三种 Set objWSH = CreateObject( "WScript.Shell" ) Set objWSH = Nothing 注意了,JS 版没有 MsgBox 函数,所以 VBS 的第一种方法 JS 里没有: // 第一种 // 第二种 WSH 有两个宿主,一个是 GUI 版的 WScript.exe,另一个是 CUI 的 CScript.exe,直接双击 VBS/JS 文件默认是使用 WScript.exe,选择文件右键菜单里的“在命令提示符中打开”则使用 CScript.exe。这两个宿主的 WScript.Echo 是不同的,请注意比较。 所谓宿主就是用来解释脚本文件的程序。脚本程序不是可执行文件,它需要别的程序来解释。如果宿主程序被删除或者文件关联错误,都可能造成脚本程序无法运行,所以对初学者应该使用一个完好的系统,不然可能会有很多麻烦。比如,上个世纪有个软件叫“超级结巴”的,它就把 VBS 的文件关联给改了,结果 VBS 程序都无法运行了,UMU 正是发现这一点才连 JS 一块学了。 好吧,暂时就说到这里,语法 UMU 是不打算说了,有兴趣百度一下 VBS 教材应该有很多~ |