时间: 2021-07-31 作者:daque
前 言 赫赫有名的wsh传闻过吗? 它即是windows script host的缩写情势,wsh是windows平台的剧本训令,它的功效格外宏大,而且它仍旧运用语法构造大略、易学易用且功效宏大的jscript和vbscript剧本谈话,来实行其特出的功效的,除去正文引见的窜改备案表除外,它还不妨考察excel文献,也能与搜集勾通,固然它最大的上风莫过于它能与操纵体例勾通,而窜改备案表不过它与操纵体例勾通的冰排一角。恰是它有如许诸多的便宜与适用性,正倍受很多windows用户的喜爱,正文就为大师引见一二,让诸位领会一下wsh的风度。
用vbscript编写的wsh步调文献的扩充名为.vbs,该剧本步调在窗口界面是由wscript.exe文献证明实行的,在字符界面是由cscript.exe文献证明实行的,吩咐方法为:cscript filename.vbs 创造东西
用vbscript窜改备案表,必需先创造一个能于操纵体例勾通的东西,再运用该东西的百般本领对备案表举行操纵,创造这个东西的本领和方法如次:
dim operationregistry set operationregistry=wscript.createobject("wscript.shell")
上述那些代码就创造了一个能与操纵体例勾通的东西operationregistry 东西的本领 有了之上这个东西,并不即是就能赶快对备案表举行操纵,咱们还必需弄清该东西对备案表举行操纵的几种要害本领.
1.对备案表的读操纵regread 2.对备案表的写操纵regwrite 3.对备案表的删操纵regdelete
弥补一点,wsh再有两个通用的本领: wscript.echo()用来表露一串文本消息,十分于vb中的msgbox()。 wscript.quit()用来退出vbscript步调。 本领的参数 对于之上三种操纵regread,regwrite,regdelete都须要带参数举行,而且那些操纵的参数的个数和情势又不尽沟通,底下我就把它们的一个共通且必不行少的参数讲一下:
该参数可称作是"路途参数",它囊括根键,主键路途和键值,各局部表白的本领如次:
根键: 根键有两种表白本领。 本领一:径直用它在备案表中的字符串来表白,如: hkey_classes_root,hkey_current_user等 本领二:用缩写的四个假名来表白,前两个为hk,后两个即为根键单词的首假名。如: 根键hkey_classes_root表白为:hkcr, 根键hkey_current_user可表白为:hkcu等。
主键路途: 主键路途即是目的键在备案表中的主键场所,各个主键之间用"\"符分割开。如:"software\microsoft\windows\currentversion\policies\" 键值: 键值参数径直接在主键路途之后。比方一个完备的路途如次所示: "hkcr\software\microsoft\windows\currentversion\policies\norun" 本领详解 1、regread操纵详解 读操纵regread主假如用来读取备案表中主键的默许值或键值的数据,咱们不妨将读得的数据送给相映的变量中,再运用vb中的msgbox()因变量将该数据表露出来,这就到达了读取备案表中数据的手段(也不妨运用东西operationregistry的本领popup()将读取的数据送至屏幕), 比方:
'read.vbs(将以次代码存为read.vbs文献) dim operationregistry set operationregistry=wscript.createobject("wscript.shell") dim read_data1,read_data2 read_data1=operationregistry.regread("hkcr\.xxf\") '读取根键hkey_classes_root之下的.xxf主键的默许值,并将该数据送至变量read_data1 read_data2=operationregistry.regread("hkcr\.xxf\value") '读取.xxf主键之下的value键值的数据,并将该数据送至变量read_data2 msgbox("default="&read_data1&" value="&read_data2) '将读取的数据表露出来
2、regwrite操纵详解 写操纵regwrite主假如用来在备案表中兴建主键或键值,并要付与给它们一个初始值,该操纵同样不妨对备案表中以生存的主键或键值举行数据的窜改,所以写操纵的参数构造就比读操纵要搀杂少许,它不只要路途参数,还要一个初始值和典型参数.
先来看初始值参数,该参数对于写操纵来说是必不行少的,它不妨为空(null)但却不许省掉。在兴建主键时,初始值参数就赋给了该主键的默许值,在兴建键值时,初始值参数就成了兴建键值的初始数据.而初始值的典型,则是由典型参数确定的.典型重要有以次三种:
[page_break](1)reg_sz:字符型.该典型为缺省典型 (2)reg_dword:双字节型. (3)reg_binary:二进制型. 之上三种典型第1种和第2种用得最多,第3种典型在某些场所不妨用第2种加以代替,这三种典型的赋值本领如次: 对于reg_sz型:径直用字符串付与,如"text","string"等 对于reg_dword型和reg_binary型则有两种赋值办法 i)径直用十进制的数表白,如:0,1等. ii)用十六进制的数表白,如:0x12,0xff等. 看例:
'write.vbsdim operationregistryset operationregistry=wscript.createobject("wscript.shell")default=operationregistry.regread("hkcr\")'获得一个空值 (null) operationregistry.regwrite "hkcr\.xxf\",default'在根键hkey_classes_root之下兴建主键.xxf,并置其默许值为空 operationregistry.regwrite "hkcr\.xxf\","xxffile"'在根键hkey_classes_root之下兴建主键.xxf,并置其默许值?quot;xxffile" operationregistry.regwrite "hkcr\.xxf\value1","string"'在主键.xxf之下兴建一个字符串型键值value1,并置其初始值为"string" operationregistry.regwrite "hkcr\.xxf\value2",1,"reg_dword"'在主键.xxf之下兴建一个reg_dword型键值value2,并置其初始值为1 operationregistry.regwrite "hkcr\.xxf\value3",0xff,"reg_binary"'在主键.xxf之下兴建一个二进制型键值value3,并置其初始值为十六进制的ff
3、regdelete操纵详解 简略操纵regdelete主假如用来简略备案表中已生存的主键或键值,该操纵是一种极端伤害的操纵,它能将主键或键值绝不包容的在备案表中“砍掉”,不管该键值底下有多要害的数据,它都能畅行无阻,所以在运用该操纵时必须提防。
简略操纵的参数情势与读操纵的参数情势简直实足沟通,不过有一点小小的辨别,那即是简略操纵不须要将操纵的归来值送给某一变量,比方:
'delete.vbsdim operationregistryset operationregistry=wscript.createobject("wscript.shell")operationregistry.regread("hkcr\.xxf\value")'简略.xxf主键之下的value键值operationregistry.regread("hkcr\.xxf\")'简略根键hkey_classes_root之下的.xxf主键
夸大一点,不要变动备案表中已生存的主键或键值,更不要将它们简略,由于对备案表举行了不妥的写操纵或删操纵,情景重要的会引导体例解体!即使你真想这么做,那就请你作好备案表的备份。 运用范例 1、课本机“计划机名”'readcomputername.vbsdim readcomputernameset readcomputername=wscript.createobject("wscript.shell")dim computername,regpathregpath="hklm\system\currentcontrolset\control\computername\computername\computername"computername=readcomputername.regread(regpath)msgbox("计划机名为"&computername)
2、湮没赶快办法图标上的小箭镞'hidden.vbsdim hiddenarrowiconset hiddenarrowicon=wscript.createobject("wscript.shell")dim regpath1,regpath2regpath1="hkcr\lnkfile\isshortcut"regpath2="hkcr\piffile\isshortcut"hiddenarrowicon.regdelete(regpath1)hiddenarrowicon.regdelete(regpath2)
3、变革“发端”菜单'changestartmenu.vbsdim changestartmenuset changestartmenu=wscript.createobject("wscript.shell")regpath="hkcr\software\microsoft\windows\currentversion\policies\"type_name="reg_dword"key_data=1 startmenu_run="norun"startmenu_find="nofind"startmenu_close="noclose" sub change(argument)changestartmenu.regwrite regpath&argument,key_data,type_namemsgbox("success!")end sub call change(startmenu_run) '禁止使用“发端”菜单中的“运转”功效call change(startmenu_find) '禁止使用“发端”菜单中的“搜索”功效call change(startmenu_close) '禁止使用“发端”菜单中的“封闭体例”功效
4、向windows中增添自启用步调 该步调能在开机时机动运转。'addautorunprogram.vbs'假如该步调在c:\myfile文献夹中,文献名为autorun.exedim autorunprogramset autorunprogram=wscript.createobject("wscript.shell")regpath="hklm\software\microsoft\windows\currentversion\run\"type_name="reg_sz"key_name="autorun"key_data="c:\myfile\autorun.exe"'该自启用步调的全路途文献名autorunprogram.write regpath&key_name,key_data,type_name'在启用组中增添自启用步调autorun.exemsgbox("success!")