摘 要 WSH是一种基于32位Windows平台、应用于ActiveX脚本引擎、与编程语言无关的脚本宿主。本文通过几个实例介绍了如何在Delphi5.0中应用WSH技术。
关键词 Delphii WSH 脚本执行和辅助功能
1 引言
微软公司的WSH(Windows Scripting Host)是一种基于32位Windows平台、应用于ActiveX脚本引擎、与编程语言无关的脚本宿主。WSH具有良好的脚本语言支持特性,它支持VBScript、java script、Perl、REXX等各种脚本语言。WSH的运行方式较为灵活,既可以在Windows中运行,也可以在DOS命令模式下启动。微软已经在Windows98、Windows2000中内置了WSH技术。
WSH对象模型主要包含了两类ActiveX接口:脚本执行和辅助功能。每类接口提供多种WSH对象,各对象有自己的方法和属性。脚本执行接口提供了许多属性和方法。这类接口允许脚本操作处理WSH,在屏幕上显示特定信息,执行一些基本功能(如创建Word应用程序对象)。辅助功能接口也提供了丰富的属性和方法供用户使用。利用这些属性和方法我们可以进行各种操作,例如:映射 oWord.quit;
end;
上述代码的主要作用是将mr_10.doc文件另存为Web页,适用于Word97、Word2000。请注意saveas()中的参数8,它用于标识HTML文档格式。如果不使用该参数,保存为Web页后可能全是乱码。
2.4 操作注册表
Delphi5.0已经提供了操作注册表的方法(使用TRegistry.Create),但使用WSH的处理方法更为简单明了。WSH通过RegRead、RegDelete、RegWrite方法,可以对注册表的5个分支部分,即HKEY_CURRENT_USER(HKCU)、HKEY_LOCAL_MACHINE(HKLM)、HKEY_CLASSES_ROOT(HKCR)、HKEY_USERS 、HKEY_CURRENT_CONFIG ,进行操作。注意,括号内为缩写形式,实际应用时,我们既可以使用全称,也可以使用缩写。下面来看一个示例程序:
procedure TForm1.Button1Click(Sender: TObject);
var
oWshReg:variant ;
begin
oWshReg:=CreateOleObject('Wscript.Shell');
oWshReg.RegWrite('HKCU\WSHSample\Value',10,'REG_BINARY');
end;
上述代码在注册表的HKEY_CURRENT_USER分支下创建主键WSHSample,并在该主键下创建二进制值Value,其数值为10。RegWrite方法的语法格式为:RegWrite(strName,anyValue,[strType])。其中,strType参数用于指定键值的数据类型,可以是REG_DWORD、REG_BINARY、REG_SZ等等。
3 结束语
总的看来,WSH使程序代码容易编写、易于阅读,还可以实现一些特殊功能。在使用Delphi5.0开发应用系统时,我们可以适当使用WSH技术。
参考文献
1 Charlie Calvert,Delphi4编程技术内幕,机械工业出版社,1999
2 Micros
oft Corporation,动态HTML参考和开发应用大全,人民邮电出版社,2000.3