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语句。