摘 要 SH是一种基于32位inds平台、 应用 于AtiveX脚本引擎、与编程语言无关的脚本宿主。本文通过几个实例介绍了如何在Delphi5.0中应用SH技术。
关键词 Delphii SH 脚本执行和辅助功能
1 引言
微软公司的SH(inds Sripting Hst)是一种基于32位inds平台、应用于AtiveX脚本引擎、与编程语言无关的脚本宿主。SH具有良好的脚本语言支持特性,它支持VBSript、javasript、Perl、REXX等各种脚本语言。SH的运行方式较为灵活,既可以在inds中运行,也可以在DS命令模式下启动。微软已经在inds98、inds2000中内置了SH技术。
SH对象模型主要包含了两类AtiveX接口:脚本执行和辅助功能。每类接口提供多种SH对象,各对象有自己的 方法 和属性。脚本执行接口提供了许多属性和方法。这类接口允许脚本操作处理SH,在屏幕上显示特定信息,执行一些基本功能(如创建rd应用程序对象)。辅助功能接口也提供了丰富的属性和方法供用户使用。利用这些属性和方法我们可以进行各种操作,例如:映射 网络 驱动器、连接远程打印机、获取编辑系统环境变量(如用户名、 计算 机名、域名等等)、操作注册表等。系统管理员可以利用这些辅助功能创建简单的登录脚本。程序编写者可以利用这些由SH提供的对象接口在基于inds的平台上执行各种自动化任务,例如:启动rd、Exel、Perpint任务,打开AD文件等。
在Delphi5.0中应用SH技术,不但可以利用SH的强大功能增强应用程序的性能,还可以简化应用程序设计,使编程工作更为简单。某些原本只能由inds API函数完成的工作现在可以使用更为简单明了的SH完成。SH为用户提供了多个对象,例如:shShrtut、 shShell、 shArguents、 shUrlShrtut、 Autatin、shEnvirnent等等。我们可以利用它们进行各种应用。
2 SH应用实例
2.1 映射网络驱动器
在实际开发IS系统时,我们曾经碰到这样一个 问题 :该系统由 企业 内部30个不同的部门使用,由于管理的需要,各部门的数据除了通过专用数据库接口提交到服务器以实现数据共享外,还须由系统自动将各部门数据以专门的HTL文件格式发送到指定的服务器目录下。服务器上对应设置了30个不同的共享目录。服务器上的共享目录分别映射为本地各部门的指定驱动器如:)。显然,逐个部门进行手工映射比较繁琐。比较严重的情况是,如果用户由于误操作断开该映射,将导致应用系统无法运行。比较好的做法是在系统启动时自动映射网络驱动器,SH为我们提供了非常简单的实现方法。下面是一个示例性程序:
predure TFr1.Frreate(Sender: Tbjet);
var
shNetrk:variant ;
begin
shNetrk:=reatelebjet('sript.Netrk');
shNetrk.apNetrkDrive(':','\\ezss\ydis','True','adinistratr','xyz');
End;
程序首先创建基于SH的LE对象,然后映射服务器ezss上的共享目录ydis为:。apNetrkDrive方法的语法格式为:
apNetrkDrive(strLalNae,strReteNae,[bUpdatePrfile],[strUser],[strPassrd])
各参数含义简要说明如下:
strLalNae 映射到本地的驱动器名称。
strReteNae 映射的远程共享名。
bUpdatePrfile 如果本参数设置为TRUE,这种映射将存储在用户inds系统的prfiles文件夹下作为用户配置保留。
strUser、strPassrd 指定受托共享的用户名和密码。
若要断开该映射,可以使用ReveNetrkDrive方法,例如shNetrk.ReveNetrkDrive(':')。
2.2 创建应用程序快捷方式图标
SH可以帮助我们非常容易地创建应用程序快捷方式图标,这使得我们能够自由地在安装程序中选择发布程序快捷图标的创建方式。至于应用程序快捷方式图标放置在哪个地方,则完全由我们来决定。实际上,SH允许我们自由地将应用程序快捷方式图标放置在桌面、开始菜单、程序组、发送到、网上邻居、我的文档等各种地方。在indsNT中,还可以放置在所有用户的启动组、开始菜单或桌面上。实际操作时,SH首先利用shSpeialFlders.Ite("strFlderNae")属性返回指定文件夹(如桌面)的路径,然后利用reateShrtut方法创建快捷方式。当然,我们也可以指定该快捷方式的热键、目标路径、工作路径、窗口状态等等。下面是一个示例:
未完...点击下方链接下载完整文档