WSH脚本宿主

简介: WSH,是“Windows Scripting Host”的缩略形式,其通用的中文译名为“Windows 脚本宿主”。Wscript脚本主对象WScript.Echo WScript.BuildVersion 'WSH脚本宿主的生成版本号WScript.
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语句。
目录
相关文章
|
5月前
|
开发者 Windows
'wepy' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
'wepy' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
78 0
|
PHP
'php' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
'php' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
320 0
'php' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
|
机器学习/深度学习 Go Apache
如何在windowsXP下运行用c 编写cgi
如何在windowsXP下运行用c 编写cgi
79 0
如何在windowsXP下运行用c 编写cgi
如何利用Vbs 运行外部程序
如何利用Vbs 运行外部程序
187 0
VBScript脚本运用(脚本程序与宿主程序的交互)
做过工控的人都知道,对脚本语言的支持是标准组态软件应具备的一个基本功能(如iFix,组态王等)。如果我们用VB开发类似的功能,能实现吗
722 0
|
C++ Windows Apache
如何在windowsXP下运行用c 编写cgi?
如何在windowsXP下运行用c 编写cgi? 前提是安装apache服务器,apache服务器的conf里面在里面配置好。然后只要把exe文件放到cgi-bin下面就大功告成了。
297 0
|
API C++ Windows
C++中运行外部程序
关于三个SDK函数: WinExec, ShellExecute,CreateProcess 的其他注意事项: 【1】定义头文件 必须定义以下两个头文件: #include  // 可替换为 windows.h #include  如果定义了头文件 #include 的话就不必定义 #include 了。
1614 0
|
Web App开发 JSON 测试技术
宿主
什么是宿主     ASP.NET Core应用程序需要在宿主中执行.宿主必须实现IWebHost接口,这个接口暴露了功能和服务的集合,以及Start方法。宿主通常使用WebHostBuilder的实例进行创建,该实例构建并返回一个WebHost实例。
1208 0