首页 > 文秘写作 > 秘书基础 / 正文
[如何快速地从网页中获得Email地址] 网页
2019-12-01 07:39:26 ℃摘要WSH是一种基于32位Windows平台、应用于ActiveX脚本引擎、与编程语言无关的脚本宿主。本文通过几个实例介绍了如何在Delphi5.0中应用WSH技术。
关键词DelphiiWSH脚本执行和辅助功能
1引言
微软公司的WSH(WindowsScriptingHost)是一种基于32位Windows平台、应用于ActiveX脚本引擎、与编程语言无关的脚本宿主。WSH具有良好的脚本语言支持特性,它支持VBScript、javascript、Perl、REXX等各种脚本语言。WSH的运行方式较为灵活,既可以在Windows中运行,也可以在DOS命令模式下启动。微软已经在Windows98、Windows2000中内置了WSH技术。
WSH对象模型主要包含了两类ActiveX接口:脚本执行和辅助功能。每类接口提供多种WSH对象,各对象有自己的方法和属性。脚本执行接口提供了许多属性和方法。这类接口允许脚本操作处理WSH,在屏幕上显示特定信息,执行一些基本功能(如创建Word应用程序对象)。辅助功能接口也提供了丰富的属性和方法供用户使用。利用这些属性和方法我们可以进行各种操作,例如:映射网络驱动器、连接远程打印机、获取编辑系统环境变量(如用户名、计算机名、域名等等)、操作注册表等。系统管理员可以利用这些辅助功能创建简单的登录脚本。程序编写者可以利用这些由WSH提供的对象接口在基于Windows的平台上执行各种自动化任务,例如:启动Word、Excel、Powerpoint任务,打开CAD文件等。
在Delphi5.0中应用WSH技术,不但可以利用WSH的强大功能增强应用程序的性能,还可以简化应用程序设计,使编程工作更为简单。某些原本只能由WindowsAPI函数完成的工作现在可以使用更为简单明了的WSH完成。WSH为用户提供了多个对象,例如:WshShortcut、WshShell、WshArguments、WshUrlShortcut、Automation、WshEnvironment等等。我们可以利用它们进行各种应用。
2WSH应用实例
2.1映射网络驱动器
在实际开发MIS系统时,我们曾经碰到这样一个问题:该系统由企业内部30个不同的部门使用,由于管理的需要,各部门的数据除了通过专用数据库接口提交到服务器以实现数据共享外,还须由系统自动将各部门数据以专门的HTML文件格式发送到指定的服务器目录下。服务器上对应设置了30个不同的共享目录。服务器上的共享目录分别映射为本地各部门的指定驱动器如W:)。显然,逐个部门进行手工映射比较繁琐。比较严重的情况是,如果用户由于误操作断开该映射,将导致应用系统无法运行。比较好的做法是在系统启动时自动映射网络驱动器,WSH为我们提供了非常简单的实现方法。下面是一个示例性程序:
procedureTForm1.FormCreate(Sender:TObject);
var
oWshNetwork:variant;
begin
oWshNetwork:=CreateOleObject(#39;Wscript.Network#39;);
oWshNetwork.MapNetworkDrive(#39;w:#39;,#39;ezssydmis#39;,#39;True#39;,#39;administrator#39;,#39;xyz#39;);
End;
程序首先创建基于WSH的OLE对象,然后映射服务器ezss上的共享目录ydmis为W:。MapNetworkDrive方法的语法格式为:
MapNetworkDrive(strLocalName,strRemoteName,[bUpdateProfile],[strUser],[strPassword])
各参数含义简要说明如下:
strLocalName映射到本地的驱动器名称。
strRemoteName映射的远程共享名。
bUpdateProfile如果本参数设置为TRUE,这种映射将存储在用户Windows系统的profiles文件夹下作为用户配置保留。
strUser、strPassword指定受托共享的用户名和密码。
若要断开该映射,可以使用RemoveNetworkDrive方法,例如oWshNetwork.RemoveNetworkDrive(#39;w:#39;)。
2.2创建应用程序快捷方式图标
WSH可以帮助我们非常容易地创建应用程序快捷方式图标,这使得我们能够自由地在安装程序中选择发布程序快捷图标的创建方式。至于应用程序快捷方式图标放置在哪个地方,则完全由我们来决定。实际上,WSH允许我们自由地将应用程序快捷方式图标放置在桌面、开始菜单、程序组、发送到、网上邻居、我的文档等各种地方。在WindowsNT中,还可以放置在所有用户的启动组、开始菜单或桌面上。实际操作时,WSH首先利用WshSpecialFolders.Item("strFolderName")属性返回指定文件夹(如桌面)的路径,然后利用CreateShortcut方法创建快捷方式。当然,我们也可以指定该快捷方式的热键、目标路径、工作路径、窗口状态等等。下面是一个示例:
procedureTForm1.Button1Click(Sender:TObject);
var
oWshShell,strShortcut,oMyShortcut:variant;
begin
oWshShell:=CreateoleObject(#39;Wscript.Shell#39;);
strShortcut:=oWshShell.SpecialFolders.Item(#39;DeskTop#39;);
oMyShortcut:=oWshShell.CreateShortcut(strShortcut+#39;MIS辅助教学.lnk#39;);
oMyShortCut.Hotkey:=#39;ALT+CTRL+C#39;;
oMyShortcut.TargetPath:=#39;d:mismis.exe#39;;
oMyShortCut.WorkingDirectory="d:mis"
oMyShortCut.WindowStyle=1
oMyShortCut.Save;
end;
上述程序代码在桌面创建了一个“MIS辅助教学”应用程序快捷方式图标。窗口状态(WindowStyle)设置为普通,Save()方法用于保存该快捷方式图标。另外,我们可以根据需要将Item("strFolderName")中的strFolderName修改为AllUsersDesktop、AllUsersStartMenu、AllUsersPrograms、AllUsersStartup、Desktop、Favorites、Fonts、MyDocuments、NetHood、PrintHood、Programs、Recent、SendTo、StartMenu、Startup等串值,以便在不同的地方创建应用程序快捷方式图标。
2.3实现Word、Powerpoint、Excel自动
尽管Delphi5.0已经提供了Office组件,也提供了这方面的应用实例,但在处理一个已经存在的Office文档时仍然不够方便。WSH可以灵活地处理Office文档,这使得我们几乎可以在应用程序中无缝集成Office功能。在创建基于Office应用程序的OLE对象后,编程人员可以利用Office录制宏的功能,非常方便地获得有关处理命令,减少了开发难度。这样一来,在应用程序中实现Word、Powerpoint、Excel自动化,就非常容易了。下面是一个处理Word文档的简单示例:
procedureTForm1.Button1Click(Sender:TObject);
var
oWord:variant;
begin
OWord:=createoleobject(#39;word.application#39;);
oWord.visible:=false;
oWord.documents.open(#39;d:scglmr_10.doc#39;);
oWord.documents.item(1).saveas(#39;d:scglhtmsmr_10.html#39;,8);
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,进行操作。注意,括号内为缩写形式,实际应用时,我们既可以使用全称,也可以使用缩写。下面来看一个示例程序:
procedureTForm1.Button1Click(Sender:TObject);
var
oWshReg:variant;
begin
oWshReg:=CreateOleObject(#39;Wscript.Shell#39;);
oWshReg.RegWrite(#39;HKCUWSHSampleValue#39;,10,#39;REG_BINARY#39;);
end;
上述代码在注册表的HKEY_CURRENT_USER分支下创建主键WSHSample,并在该主键下创建二进制值Value,其数值为10。RegWrite方法的语法格式为:RegWrite(strName,anyValue,[strType])。其中,strType参数用于指定键值的数据类型,可以是REG_DWORD、REG_BINARY、REG_SZ等等。
3结束语
总的看来,WSH使程序代码容易编写、易于阅读,还可以实现一些特殊功能。在使用Delphi5.0开发应用系统时,我们可以适当使用WSH技术。
猜你喜欢
- 2023-11-01 单位秘书个人工作总结6篇(精选文档)
- 2023-10-31 总经理秘书总结4篇
- 2023-10-24 最新关于教学秘书工作总结15篇
- 2023-10-23 2023年经理秘书年终个人总结8篇【通用文档】
- 2023-10-23 2023总裁秘书个人工作总结3篇【精选推荐】
- 2023-10-23 秘书年终总结8篇(完整文档)
- 2023-10-21 2023年度董事会秘书总结4篇
- 2023-10-20 2023年有关公司秘书上半年的个人工作总结9篇
- 2023-10-19 公司秘书的个人工作总结12篇(精选文档)
- 2023-10-15 学生会秘书部总结6篇
- 搜索
-
- 中国共产党建党时期第一批党员 09-04
- 践行初心使命心得体会10篇 06-29
- 党员自我批评简短150字 10-22
- 2篇2020年党支部书记述职报告 07-09
- 党史工作调研报告 08-31
- 国家开放大学电大专科《古代汉语(2) 10-31
- 村(社区)网格员职责和要求 05-03
- 组织生活会批评与自我批评意见 06-26
- 关于疫情的论文 07-17
- 公安民警2020年“政治建警”个人学习心得 10-14
- 11-25国庆70周年庆典晚会 庆典晚会串词
- 11-25办公室礼仪的十大原则 浅谈办公室的电话礼仪
- 01-17用心灵轻轻地歌唱_心灵的歌唱
- 01-17也许你不是我一生的唯一|也许不是我
- 01-17爱了,请珍惜;不爱,趁早放手|爱就珍惜不爱就放手
- 01-17岁月带走的是记忆,但回忆会越来越清晰|有趣又有深意的句子
- 01-17曾经的美好只是曾经,我只想珍惜身边的人|我只想珍惜你
- 01-18从容不惊 [学会笑眼去看世界,不惊不乍,淡定从容]
- 02-03当代大学生学习态度调查报告
- 02-03常用护患英语会话
- 标签列表