WshShell作为WSH对象的一部分, 它的主要任务如下:
在本地运行程序 操纵注册表内容。 创建快捷方式 访问系统文件夹 操纵环境变量(如 WINDIR、PATH 或 PROMPT)
1.运行CMD命令行命令
set ōbshell=wscrīpt.createobject("wscrīpt.shell")
obshell.run ("ipconfig"),,true
如果要运行的命令中包含双引号,可使用&chr(34)&代替
2.操纵注册表内容
注册表的修改,读取,删除,创建
Set wso = CreateObject("Wscrīpt.Shell") '声明
wso.RegWrite "%Path%" '创建子键
wso.RegWrite "%Path%","%Value%" '修改"默认"键值
wso.RegWrite "%Path%",%Value%,%RegType% '修改特定类型的键值
'(字符串值 REG_SZ 可扩充字符串值 REG_EXPAND_SZ DWORD值 REG_DWORD 二进制值 REG_BINARY)
Set WSHShell= Wscrīpt.CreateObject("Wscrīpt.Shell")
WSHShell.RegRead (%Path%) '读取注册表子键或键值(一般用于判断某一事件是否执行)
Set wso = CreateObject("Wscrīpt.Shell")
wso.RegDelete "%Path%" '删除子键或键值
'(根键缩写HKEY_CLASSES_ROOT HKCR HKEY_CURRENT_USER HKCU HKEY_LOCAL_MACHINE HKLM,其余无)
Set wso = CreateObject("Wscrīpt.Shell")
wso.RegWrite "HKLM\SOFTWARE\Microsft\Windows NT\#1"
wso.RegWrite "HKLM\SOFTWARE\Microsft\Windows NT\#1","0"
wso.RegWrite "HKLM\SOFTWARE\Microsft\Windows NT\#1\#2",0,REG_BINARY
wso.RegDelete "HKLM\SOFTWARE\Microsft\Windows NT\#1"
Wscrīpt.quit
3.创建快捷方式
Set a = CreateObject("Wscrīpt.Shell")
Dim b
Set b = a.CreateShortcut("C:\lin.lnk")
b.TargetPath = "notepad.exe"
b.WorkingDirectory = "C:\windows\system32"
b.IconLocation = "notepad.exe,0"
b.Save
4.访问系统文件夹
文件的复制,删除,创建,简单的写入
Set fso = Wscrīpt.CreateObject("scrīpting.FileSystemObject") ‘声明
Set f = fso.CreateTextFile("%PATH%") '创建文件,其中f可任意,包含缩略名
f.WriteLine("VBS") '写文件内容,该命令功能太简单,目前看来只能用于TXT文件
f.Close
set c=fso.getfile("%path%") ’拷贝某文件
c.copy("%PATH2%") '拷贝文件到指定地点
fso.deletefile("%PATH%") '删除文件
Wscrīpt.quit
Set fso = Wscrīpt.CreateObject("scrīpting.FileSystemObject")
Set f=fso.CreateTextFile("C:\Sample.txt")
WriteLine("VBS")
f.close
set e=fso.getfile(C:\Sample.txt)
e.copy("D:\Sample.txt")
fso.deletefile(C:\Sample.txt)
Wscrīpt.quit
5.操纵环境变量(如 WINDIR、PATH 或 PROMPT)
dim wsh
Set wsh = Wscrīpt.CreateObject("Wscrīpt.Shell")
wsh.Environment("system").Item("<变量名>")="<值>"
或使用使用REG
set regpath=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
::系统环境变量
::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
::用户环境变量
::HKEY_CURRENT_USER\Environment
reg add "%regpath%" /v "<name>" /d "<data>"
将上面的<>内容替成你需要定义的名称和值就可以了.
6.向应用程序输出简单的连串指令
dim program1 '声明变量program1
program1= "%Path%" '应用程序路径
set wshshell=createobject("wscrīpt.shell") '声明饮用函数
set ōexec=wshshell.exec(program1) '运行程序
wscrīpt.sleep 2000 '(该行命令未知作用.估计是设定延迟,请高手指点)
wshshell.appactivate "%WindowsName%" '激活运用程序窗口
wshshell.sendkeys "+{%KeyBoardName%}" '第一次输出键盘按键指令前要加+
wshshell.sendkeys "555555" '在程序输入栏中输入运用该系列命令须首先确定程序可以实施连串的键盘操作,这在QQ登录中最适用,如下例。
dim program1
program1="D:\Program Files\Tencent\coralQQ.exe"
set wshshell=CreateObject("wscrīpt.shell")
set ōexec=wshshell.exec(program1)
wscrīpt.sleep 2000
wshshell.appactivate "QQ登录"
wshshell.sendkeys "+{TAB}"
wshshell.sendkeys "250481892"
wscrīpt.sleep 2000
wshshell.sendkeys "{TAB}"
wshshell.sendkeys "****************"