WshShell对象的功能

本文介绍了WshShell对象的功能及使用方法,包括运行CMD命令、操纵注册表、创建快捷方式、访问系统文件夹和操纵环境变量等。适用于希望利用WshShell进行系统级操作的开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

WshShell作为WSH对象的一部分,  它的主要任务如下:

  • 在本地运行程序
  • 操纵注册表内容。
  • 创建快捷方式
  • 访问系统文件夹
  • 操纵环境变量(如 WINDIR、PATH 或 PROMPT)

1.运行CMD命令行命令

set obshell=wscript.createobject("wscript.shell")

obshell.run ("ipconfig"),,true

如果要运行的命令中包含双引号,可使用&chr(34)&代替


2.操纵注册表内容

注册表的修改,读取,删除,创建

Set wso = CreateObject("WScript.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= Wscript.CreateObject("Wscript.Shell")

WSHShell.RegRead (%Path%) '读取注册表子键或键值(一般用于判断某一事件是否执行)

Set wso = CreateObject("WScript.Shell")

wso.RegDelete "%Path%" '删除子键或键值

'(根键缩写HKEY_CLASSES_ROOT HKCR HKEY_CURRENT_USER HKCU HKEY_LOCAL_MACHINE HKLM,其余无)

Set wso = CreateObject("Wscript.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"

Wscript.quit

3.创建快捷方式
Set a = CreateObject("WScript.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 = Wscript.CreateObject("Scripting.FileSystemObject") ‘声明

Set f = fso.CreateTextFile("%PATH%") '创建文件,其中f可任意,包含缩略名

f.WriteLine("VBS") '写文件内容,该命令功能太简单,目前看来只能用于TXT文件

f.Close

set c=fso.getfile("%path%") ’拷贝某文件

c.copy("%PATH2%") '拷贝文件到指定地点

fso.deletefile("%PATH%") '删除文件

Wscript.quit

Set fso = Wscript.CreateObject("Scripting.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)

Wscript.quit

5.操纵环境变量(如 WINDIR、PATH 或 PROMPT)

dim wsh
Set wsh = WScript.CreateObject("WScript.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("wscript.shell") '声明饮用函数

set oexec=wshshell.exec(program1) '运行程序

wscript.sleep 2000 '(该行命令未知作用.估计是设定延迟,请高手指点)

wshshell.appactivate "%WindowsName%" '激活运用程序窗口

wshshell.sendkeys "+{%KeyBoardName%}" '第一次输出键盘按键指令前要加+

wshshell.sendkeys "555555" '在程序输入栏中输入运用该系列命令须首先确定程序可以实施连串的键盘操作,这在QQ登录中最适用,如下例。

dim program1

program1="D:/Program Files/Tencent/coralQQ.exe"

set wshshell=CreateObject("wscript.shell")

set oexec=wshshell.exec(program1)

wscript.sleep 2000

wshshell.appactivate "QQ登录"

wshshell.sendkeys "+{TAB}"

wshshell.sendkeys "250481892"

wscript.sleep 2000

wshshell.sendkeys "{TAB}"

wshshell.sendkeys "****************"
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值