WSH脚本宿主

WSH,是“Windows Scripting Host”的缩略形式,其通用的中文译名为“Windows 脚本宿主”。

Wscript脚本主对象

WScript.Echo WScript.BuildVersion 'WSH脚本宿主的生成版本号
WScript.Echo WScript.FullName '返回WSCRIPT或CSCRIPT脚本宿主所在的位置路径
WScript.Echo WScript.Interactive '返回脚本模式,仅返回交互模式和批处理模式,默认为交互模式
WScript.Echo WScript.Name '返回 WScript 对象(主机可执行文件)的名称
Wscript.Echo WScript.Path '返回包含主机可执行文CScript.exe或WScript.exe的路径名称
WScript.Echo WScript.ScriptName '返回当前双击执行的WSF或VBS或JS文件的文件名
WScript.Echo WScript.Version '返回WSCRIPT或CSCRIPT的版本号
WScript.Echo WScript.ScriptFullName '返回当前运行脚本的完整路径
WScript.Echo WScript.Arguments.count '返回用户所拖放文件至脚本时的拖放文件个数
WScript.Echo WScript.Arguments(0) '返回用户所拖放文件第1个单个文件的完整路径和名称
WScript.Sleep 3000 '使程序间隔一段时间后继续执行,单位豪秒,这里1000=1秒
Set objname=WScript.CreateObject("??") 'WSH创建COM对象,??是创建对象函数前缀,如WScript.Network
WScript.ConnectObject 连接正与外部脚本连接的变量名, "表示函数前缀的字符串值"
WScript.DisconnectObject 需要断开连接的正与外部脚本连接的变量
WScript.Echo "弹出对话框后显示的消息文字或变量"[,可选第二消息,第三消息......]
Set myobj=GetObject(?[,??],[???]) '?=文件的完全限定路径名,??=可选。对象的程序标识符,???=启动的关联应用程序名
WScript.Quit [?] '终止程序继续运行的函数,在其下语句则不会执行,?=可不添的,代表退出后的返回值

'请将此程序少加修改存为wsf后缀的文件,然后及可运行,其中当然可以使用VBS的msgbox等函数,同样也可以使用FSO,ADO等技术,但是首先你必须保证你的机器已经装有Wscript.exe和Cscript.exe,还有也可以在HTML网页中使用WSH的诸如Shell对象。此句为注释,你可以删除.Shell对象
Set WshShell=WScript.CreateObject("WScript.Shell")
WScript.Echo WshShell.CurrentDirectory '返回或更改当前的活动目录
Set sys=WshShell.Environment '显示系统状态,详细请看网络程序员伴侣WSH实例
Wscript.Echo WshShell.SpecialFolders("Desktop") '对WINDOW特殊文件夹的简易引用,详细见实例
WScript.Echo WshShell.ExpandEnvironmentStrings("%WinDir%") '返回环境变量的扩展值,详细见实例
WshShell.Run "calc",0-10 '运行一个程序,详细见实例
WshShell.AppActivate "网络程序员伴侣-Lshdic2002" '使指定标题的程序或文件获得焦点
WshShell.SendKeys "{del}" '按键(仿佛是在键盘上击键一样),详细见实例
WshShell.Popup "弹出对话框正文",0-5/16/32/48/64,"弹出对话框标题",0-5/16/32/48/64 '弹出对话框
WshShell.RegWrite "HKCU\Software\ACME\FortuneTeller\",1,"REG_BINARY" '写注册表见实例
WshShell.RegDelete "HKCU\Software\ACME\FortuneTeller\MindReader" '删除注册表见实例
key=WshShell.RegRead("HKCU\Software\ACME\FortuneTeller\") '读注册表见实例

'请将此程序少加修改存为wsf后缀的文件,然后及可运行,其中当然可以使用VBS的msgbox等函数,同样也可以使用FSO,ADO等技术,但是首先你必须保证你的机器已经装有Wscript.exe和Cscript.exe,还有也可以在HTML网页中使用WSH的诸如Shell对象。此句为注释,你可以删除.


Network对象

Set WshNetwork = WScript.CreateObject("WScript.Network")
WScript.Echo "你的域名是: " & WshNetwork.UserDomain '返回用户的域名
WScript.Echo "你的计算机系统名称是:" & WshNetwork.ComputerName '返回计算机系统的名称
WScript.Echo "你是:" & WshNetwork.UserName '返回计算机用户名

'请将此程序少加修改存为wsf后缀的文件,然后及可运行,其中当然可以使用VBS的msgbox等函数,同样也可以使用FSO,ADO等技术,但是首先你必须保证你的机器已经装有Wscript.exe和Cscript.exe,还有也可以在HTML网页中使用WSH的诸如Shell对象。此句为注释,你可以删除.


完整WSH实例
wscript.echo "这便是一简单的WSH程序,从此你又多学了一项新技术[WSH]"
msgbox "怎么样?VBS中的msgbox也起作用哦" & vc & vc & "少等1500毫秒,弹出JS语言版的对话框",32,"WSH实例"
WScript.Sleep 1500 '使程序停顿1500毫秒

pop=WScript.CreateObject("Wscript.Shell")
pop.Popup ("恭喜!你终于懂了",48,"这是JS哦")


快捷方式操作实例

Set Shell = CreateObject("WScript.Shell")
paths = Shell.SpecialFolders("Desktop") '用函数指定特殊文件夹,这里是[桌面]
Set link = Shell.CreateShortcut(paths & "\快捷方式名称.lnk")
link.Description = "此句为注释,这是用WSH创建的快捷方式"
link.HotKey = "CTRL+ALT+SHIFT+X" '这是为快捷方式定义快捷键
link.IconLocation = "pbrush.exe,0" '指定快捷方式图标,这里勉强先用画图程序的图标
link.TargetPath = "http://www.lshdic.com" '这里指定连接目标,先勉强用我以前的主页代替
link.WindowStyle = 3 '窗体弹出方式。
link.WorkingDirectory = paths '指定快捷方式的工作目录
msg = msgbox("你确认要在桌面建立一个快捷方式吗?",32+1,"如何?")
if msg = 1 then
link.Save '保存使程序立即生效
end if

'此文件运行请保存为wsf后缀的文件
'请将此程序少加修改存为wsf后缀的文件,然后及可运行,其中当然可以使用VBS的msgbox等函数,同样也可以使用FSO,ADO等技术,但是首先你必须保证你的机器已经装有Wscript.exe和Cscript.exe,还有也可以在HTML网页中使用WSH的诸如Shell对象。此句为注释,你可以删除.


注册表操作实例
Set WshShell=WScript.CreateObject("WScript.Shell")

WshShell.RegWrite

"HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet

Explorer\Control Panel\homepage",1,"REG_DWORD"
'写注册表(0=要写的值,REG_DWORD是16或10进制格式也可以是REG_SZ=字符串

REG_BINARY=二进制值整数REG_EXPAND_SZ=可扩展的字符串)

Msgbox WshShell.RegRead

("HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet

Explorer\Control Panel\homepage") '读注册表操作

'注意,程序写到这里如果将homepage的值设为1,则IE浏览器internet选项的IE首页设置栏将变灰,确认请打开IE浏览器查看,如果想恢复,则把本程序的homepage的值改成0运行即可 , 由此可见WSH操作注册表的确是很实用的技术!此文件运行请保存为wsf后缀的文件模拟输入实例

Set WshShell=WScript.CreateObject("WScript.Shell")
WshShell.Run "Notepad",1 '运行WINDOWS系统自带的记事本程序
wscript.sleep 1000 '停顿1秒种为了使记事本程序加载完毕
WshShell.AppActivate "无标题 - 记事本" '使记事本程序获得焦点
WshShell.SendKeys "1234567890 hehe" '开始模拟按键了
wscript.sleep 500
wshshell.sendkeys "{enter}no not"
wscript.sleep 500
wshshell.sendkeys "{bs 11}"
wscript.sleep 600
wshshell.sendkeys " hahahahahahaha!Bye bye my boby ~0_0~ "

'此文件运行请保存为wsf后缀的文件

系统检测实例

Set WshShell=WScript.CreateObject("WScript.Shell")
Set sys=WshShell.Environment
for each i in sys '采用VBS的穷尽方法,直至sys为空
WScript.Echo i
next

'此文件运行请保存为wsf后缀的文件,如果在网络运行,请只保留VBS语句。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
简介 当Microsoft Windows 3.1发布,我希望它与操作系统托管的脚本语言来。其他操作系统没有提供这样的语言,但Windows 3.1只有旧式的MS - DOS批处理文件。由于多种原因,我不想使用第三方解决方案,如PowerBASIC和REXX。在Microsoft Windows 95的开始,我用的Microsoft Visual Basic,Visual Basic应用程序(VBA)的,HTML脚本不时。 1998年,当我在写德国微软出版社Microsoft Windows 98的手册,我发现,Windows 98的一个新功能,叫做Windows脚本宿主WSH),它提供了两种脚本语言,微软的Visual Basic脚本版(VBScript)和Microsoft JScript中。 那年晚些时候,我开始写的Microsoft Press Microsoft Windows 98的电源工具包。我想,覆盖广泛的WSH在书中介绍了如何使用脚本来自动备份文件,映射网络驱动器和打印机,并显示用户对话框等任务。但是,我无法找到任何有关WSH的文件,并与Windows 98附带的帮助文件并不包括脚本编程。 Windows Script Host的参考,基本上只是一张白纸,我咨询过的书籍和网站处理HTML脚本只使用VBScript和JScript。于是我开始调查与Windows 98附带的WSH样本,访问微软的脚本的网站,写我自己的WSH样本。 我挣扎着找出哪些对象在特定情况下使用,如何获取有关属性和方法的信息,以及如何实现VBScript或JScript脚本。我的第一个脚本的调试是一个痛苦的过程。 1 WSH的报道大多是神秘的运行时错误消息行X或者脚本根本没有做什么,我预期。 (当时,我不知道如何使用Microsoft脚本调试器在脚本环境。)接收运行时的错误消息后,我会到记事本中加载的脚本,一次又一次,行计数手动找到故障线路,并尝试使用试验和错误的方法来修改代码。几个小时后,我决定,这种做法不可能是正确的方式做脚本编程。 一旦我开始访问的WSH新闻组,我发现其他人有同样的问题。伊恩Morrish,克拉伦斯华盛顿和迈克尔哈里斯,如新闻组参与者分享了大量有用的知识,但我还需要更多细节,特别是关于高级编程。我写的关于VBA编程和HTML脚本的书籍,所以我熟悉HTML脚本和ActiveX编程处理的互联网网站。从这些网站中,我学到一些编辑器,支持脚本编程,我学会了如何使用Visual Basic脚本调试器和对象浏览器等工具找出更多有关对象及其方法和属性。我是能够增加我的生产力显著,并创造一个相对舒适的环境脚本。 首先,我使用了典型的“宏程序员”的做法,我试图结合简单的语句创建一个脚本程序。有时这种方法的工作,但我常常是语法和运行时的错误消息轰炸。我也错过了,我也可以用来复制文件,启动程序,获取用户输入,等强大的报表。在WSH的新闻组中,一些人建议的第三方工具和语言,答应了丰富的报表收集。我知道,从以往的经验,但是,如果一种语言提供了丰富的报表集合,语言是难以学习和使用。 我用我的VBA编程经验的基础上,开始探索脚本背后的哲学。我了解到,您不必声明“埋”在一个任务,如阅读脚本的参数,并复制文件的脚本语言,因为WSH,您可以访问系统上安装的所有COM对象。因此,一个脚本可以使用这些COM对象提供的功能,以处理其任务。您还可以添加一个系统,它在不改变基本的脚本语言的脚本功能,增加新的COM对象。如果一个对象提供拼写检查,例如,你可以简单地在脚本中使用该对象。一旦我变得更加熟悉与WSH的,我发现它是最热门的技术在近年来从Microsoft。 WSH是胶,组合成一个新的,定制的应用程序中的对象(例如,一个Microsoft Office拼写检查,字处理器,一个浏览器,和邮件系统)。你可以实现一个复杂的应用程序的快速,方便,只需使用几行脚本代码。 这一点,我已经收集了大量的素材,积累了一些经验,写了许多样品。我也写了简短的章节对WSH在Microsoft Windows 98电源工具包。在1998年法兰克福书展,我会见了微软出版社收购编辑托马斯Pohlmann和斯蒂芬Guty,和WSH脚本编程标题的想法诞生。六个星期后,我的德国手稿准备好了。这本书的第一版出版于1999年1月。这是全球出版的第一个WSH的1本书。在春季,WSH 2中的第一个beta版本发布。我们决定等待直到Windows 2000发布之前提前与WSH 2本书。我花更多的时间调查WSH 2中和其他热点技术,如ActiveX数据对象(ADO),Active Directory服务接口(ADSI),和Windows管理规范(WMI)。我还写了WSH的初学者在电脑杂志的系列文章中,我的网站上创建的WSH街,花了很多时间,访问了WSH的新闻组,以了解更多的脚本程序员遇到的麻烦。 我收集的材料已经足够了两本书,这其中,对于初学者和中级用户,和一个先进的用户量,处理脚本技术。微软出版社将出版的第二本书,与微软Wi​​ndows Script Host的2.0先进的开发,今年晚些时候。这本书是为先进的脚本程序员,谁想要在此介绍卷涵盖的主题,深入覆盖。与Microsoft Windows脚本宿主2.0高级开发将解释如何使用额外的对象,以延长您的脚本功能。特别主题,如。WSF文件和许多无证暗示,涉及到这些文件的XML结构,将被覆盖。还包括将解释如何使用额外的工具,如OLE / COM对象查看器或对象浏览器中找出更多有关对象及其方法和属性。随着其他有用的技术,您将学习如何访问Microsoft Office应用程序从WSH脚本和如何使用,如Microsoft Excel电子表格,拼写检查办公室,Microsoft Word文档和Microsoft Outlook功能的对象。您还将学习如何阅读和使用Microsoft Access或ActiveX数据对象(ADO)从脚本编写到数据库。书中还介绍了管理员如何从WSH脚本访问Active Directory服务接口(ADSI),以维护用户帐户,服务或股份。您将了解新技术基于Web的企业管理(WBEM),和称为“Windows管理接口(WMI)微软执行,你会发现如何使用脚本来访问网络和计算机信息,并取消正在运行的进程。您还可以发现,如何写的ActiveX控件,使用Visual Basic的控制项建立版(CCE)访问Windows API函数,创建ActiveX的形式,访问剪贴板,控制CD盘,更。我将深入研究在这本书中使用的几个ActiveX控制更详细的源代码。鉴于Microsoft Windows脚本宿主2.0开发人员指南教你,你需要知道什么开始,与Microsoft Windows脚本宿主2.0高级开发与WSH脚本会为您提供的信息,你需要成为一个专家WSH程序员。您将学到的专业开发人员使用,以帮助得到最有效的WSH的编程技巧。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值