VBS操作注册表设置新建读取,删除等操作(更新中)

简介:

搜索注册表中的键值,子键等等:

Const HKEY_LOCAL_MACHINE = &H80000002
Const REG_SZ = 1
Const REG_EXPAND_SZ = 2
Const REG_BINARY = 3
Const REG_DWORD = 4
Const REG_MULTI_SZ = 7
 
strComputer = "."
 
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ 
    strComputer & "\root\default:StdRegProv")
 
strKeyPath = "SYSTEM\CurrentControlSet\Control\Lsa"
 
oReg.EnumValues HKEY_LOCAL_MACHINE, strKeyPath, _
    arrValueNames, arrValueTypes
 
For i=0 To UBound(arrValueNames)
    Wscript.Echo "Value Name: " & arrValueNames(i) 
    
    Select Case arrValueTypes(i)
        Case REG_SZ
            Wscript.Echo "Data Type: String"
            Wscript.Echo
        Case REG_EXPAND_SZ
            Wscript.Echo "Data Type: Expanded String"
            Wscript.Echo
        Case REG_BINARY
            Wscript.Echo "Data Type: Binary"
            Wscript.Echo
        Case REG_DWORD
            Wscript.Echo "Data Type: DWORD"
            Wscript.Echo
        Case REG_MULTI_SZ
            Wscript.Echo "Data Type: Multi String"
            Wscript.Echo
    End Select 
Next

 

 

***********************************************************************************

Dim WshShell
Set WshShell =CreateObject("WScript.Shell")
WshShell.RegWrite "HKCU\Software\Mercury Interactive\QuickTest Professional\MicTest/ReservedObjects\GlobalDictionary\ProgID", "Scripting.Dictionary","REG_SZ"
Set WshShell = Nothing

  注意上面的分隔符是\

RegRead,RegWrite,RegDelete

 

数据类型:

 (1)REG_SZ:字符型.该类型为缺省类型
(2)REG_DWORD:双字节型.
(3)REG_BINARY:二进制型.

根键:
根键有两种表示方法。
方法一:直接用它在注册表中的字符串来表示,如:
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"

 

 

Dim OperationRegistry
Set 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.vbs
Dim OperationRegistry
Set OperationRegistry=WScript.CreateObject("WScript.Shell")
OperationRegistry.RegRead("HKCR\.xxf\value")
'删除.xxf主键之下的value键值
OperationRegistry.RegRead("HKCR\.xxf\")
'删除根键HKEY_CLASSES_ROOT之下的.xxf主键

**********************************************************************************************************************************************************************

应用实例

  1、读本机“计算机名”
'ReadComputerName.vbs
Dim ReadComputerName
Set ReadComputerName=WScript.CreateObject("WScript.Shell")
Dim ComputerName,RegPath
RegPath="HKLM\System\CurrentControlSet\Control\
ComputerName\ComputerName\ComputerName"
ComputerName=ReadComputerName.RegRead(RegPath)
MsgBox("计算机名为"&ComputerName)



  2、隐藏快捷方式图标上的小箭头
'Hidden.vbs
Dim HiddenArrowIcon
Set HiddenArrowIcon=WScript.CreateObject("WScript.Shell")
Dim RegPath1,RegPath2
RegPath1="HKCR\lnkfile\IsShortCut"
RegPath2="HKCR\piffile\IsShortCut"
HiddenArrowIcon.RegDelete(RegPath1)
HiddenArrowIcon.RegDelete(RegPath2)



  3、改造“开始”菜单
'ChangeStartMenu.vbs
Dim ChangeStartMenu
Set 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_Name
MsgBox("Success!")
End Sub
  
Call Change(StartMenu_Run) '禁用“开始”菜单中的“运行”功能
Call Change(StartMenu_Find) '禁用“开始”菜单中的“查找”功能
Call Change(StartMenu_Close) '禁用“开始”菜单中的“关闭系统”功能



  4、向Windows中添加自启动程序
  该程序能在开机时自动运行。
'AddAutoRunProgram.vbs
'假设该程序在c:\myfile文件夹中,文件名为autorun.exe
Dim AutoRunProgram
Set 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.exe
MsgBox("Success!")



,如需转载请自行联系原作者。
目录
相关文章
|
5月前
|
存储 iOS开发 C++
C++文件 I/O操作
C++文件 I/O操作
33 0
|
7月前
|
Linux 编译器 C语言
关于文件的操作
关于文件的操作
|
8月前
|
C语言 C++
对文件的各种操作详解 1
对文件的各种操作详解
|
8月前
对文件的各种操作详解 2
对文件的各种操作详解
|
8月前
|
C语言
对文件的各种操作详解 3
对文件的各种操作详解
|
Oracle Java 关系型数据库
修改注册表解决JDK目录更改后命令无效的问题
修改注册表解决JDK目录更改后命令无效的问题
155 0
修改注册表解决JDK目录更改后命令无效的问题
|
Windows
无法保存对hosts权限所作的更改 拒绝访问(权限,防止Windows主机文件、进程、注册表项进行操作和更改)
为Windows安装或修改配置、 无法保存对hosts权限所作的更改 拒绝访问 (权限,防止Windows主机文件、进程、注册表项进行操作和更改) 例如,下图: 1.使用Windows的“管理员权限”进行操作 或给当前的Windows用户分配此文件的写权限: 2.如果为文件的修改,可以先创建和复制文件副本其他地方,修改后覆盖 3.计算机安装的杀毒软件和管理软件,控制了
9378 0
修改注册表/文件报错
一般这种报错都是提示权限有问题,我们可以手动修改注册表权限
修改注册表/文件报错
64位读取注册表与32位的区别
有一个读取注册表信息的程序  if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, subkeystring , 0, KEY_READ, &hKey) == ERROR_SUCCESS)/ ,在32位下完全正常,但是在64位返回值正确,但就是读不到东西。
1205 0