一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - VBS - vbscript Registry 注冊表操作實現(xiàn)代碼(讀寫刪除)

vbscript Registry 注冊表操作實現(xiàn)代碼(讀寫刪除)

2020-08-04 12:34VBS教程網(wǎng) VBS

vbscript Registry 注冊表操作實現(xiàn)代碼(讀寫刪除)功能代碼,需要的朋友可以參考下。

VBScript Code:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
' Create a WSH Shell object:
Set wshShell = CreateObject( "WScript.Shell" )
'
' Create a new key:
wshShell.RegWrite "HKCU\TestKey\", ""
 
' Create a new DWORD value:
wshShell.RegWrite "HKCU\TestKey\DWordTestValue", 1, "REG_DWORD"
 
' Create a new subkey and a string value in that new subkey:
wshShell.RegWrite "HKCU\TestKey\SubKey\StringTestValue", "Test", "REG_SZ"
 
' Read the values we just created:
WScript.Echo "HKCU\TestKey\DWordTestValue = " _
& wshShell.RegRead( "HKCU\TestKey\DWordTestValue" )
WScript.Echo "HKCU\TestKey\SubKey\StringTestValue = """ _
& wshShell.RegRead( "HKCU\TestKey\SubKey\StringTestValue" ) & """"
 
' Delete the subkey and key and the values they contain:
wshShell.RegDelete "HKCU\TestKey\SubKey\"
wshShell.RegDelete "HKCU\TestKey\"
 
' Note: Since the WSH Shell has no Enumeration functionality, you cannot
' use the WSH Shell object to delete an entire "tree" unless you
' know the exact name of every subkey.
' If you don't, use the WMI StdRegProv instead.
 
' Release the object
Set wshShell = Nothing

用VBScript編寫的WSH程序文件的擴展名為.vbs,該腳本程序在窗口界面是由wscript.exe文件解釋執(zhí)行的,在字符界面是由cscript.exe文件解釋執(zhí)行的,命令格式為:cscript filename.vbs

創(chuàng)建對象

  用VBScript修改注冊表,必須先創(chuàng)建一個能于操作系統(tǒng)溝通的對象,再利用該對象的各種方法對注冊表進行操作,創(chuàng)建這個對象的方法和格式如下:

Dim OperationReGIStry
Set OperationRegistry=WScript.CreateObject("WScript.Shell")

  上述這些代碼就創(chuàng)建了一個能與操作系統(tǒng)溝通的對象OperationRegistry

對象的方法

有了以上這個對象,并不等于就能馬上對注冊表進行操作,我們還必須弄清該對象對注冊表進行操作的幾種重要方法.
   1.對注冊表的讀操作RegRead
   2.對注冊表的寫操作RegWrite
   3.對注冊表的刪操作RegDelete

   補充一點,WSH還有兩個通用的方法:
   WScript.Echo()用來顯示一串文本信息,相當于VB中的MsgBox()。
   Wscript.Quit()用來退出VBScript程序。

方法的參數(shù)

 對于以上三種操作RegRead,RegWrite,RegDelete都需要帶參數(shù)進行,并且這些操作的參數(shù)的個數(shù)和形式又不盡相同,下面我就把它們的一個共同且必不可少的參數(shù)講一下:
該參數(shù)可稱作是"路徑參數(shù)",它包括根鍵,主鍵路徑和鍵值,各部分表示的方法如下:
根鍵:

  根鍵有兩種表示方法。
  方法一:直接用它在注冊表中的字符串來表示,如:
  HKEY_CLASSES_ROOT,HKEY_CURRENT_USER等
  方法二:用縮寫的四個字母來表示,前兩個為HK,后兩個即為根鍵單詞的首字母。如:
  根鍵HKEY_CLASSES_ROOT表示為:HKCR, 根鍵HKEY_CURRENT_USER可表示為:HKCU等。
主鍵路徑:
  主鍵路徑就是目標鍵在注冊表中的主鍵位置,各個主鍵之間用"\"符分隔開。如:"Software\Microsoft\Windows\CurrentVersion\Policies\"
  鍵值:
  鍵值參數(shù)直接接在主鍵路徑之后。例如一個完整的路徑如下所示:
  "HKCR\Software\Microsoft\Windows\CurrentVersion\Policies\NoRun"

方法詳解

  1、RegRead操作詳解

  讀操作RegRead主要是用來讀取注冊表中主鍵的默認值或鍵值的數(shù)據(jù),我們可以將讀得的數(shù)據(jù)送到相應的變量中,再利用VB中的MsgBox()函數(shù)將該數(shù)據(jù)顯示出來,這就達到了讀取注冊表中數(shù)據(jù)的目的(也可以利用對象OperationRegistry的方法Popup()將讀取的數(shù)據(jù)送至屏幕), 例如:

?
1
2
3
4
5
6
7
8
9
10
'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主鍵的默認值,并將該數(shù)據(jù)送至變量Read_Data1
  Read_Data2=OperationRegistry.RegRead("HKCR\.xxf\value")
  '讀取.xxf主鍵之下的value鍵值的數(shù)據(jù),并將該數(shù)據(jù)送至變量Read_Data2
  MsgBox("Default="&Read_Data1&" value="&Read_Data2)
  '將讀取的數(shù)據(jù)顯示出來

  2、RegWrite操作詳解

  寫操作RegWrite主要是用來在注冊表中新建主鍵或鍵值,并要賦予給它們一個初始值,該操作同樣可以對注冊表中以存在的主鍵或鍵值進行數(shù)據(jù)的修改,因此寫操作的參數(shù)結構就比讀操作要復雜一些,它不僅要路徑參數(shù),還要一個初始值和類型參數(shù).

  先來看初始值參數(shù),該參數(shù)對于寫操作來說是必不可少的,它可以為空(null)但卻不能省掉。在新建主鍵時,初始值參數(shù)就賦給了該主鍵的默認值,在新建鍵值時,初始值參數(shù)就成了新建鍵值的初始數(shù)據(jù).而初始值的類型,則是由類型參數(shù)決定的.類型主要有以下三種:
(1)REG_SZ:字符型.該類型為缺省類型
  (2)REG_DWORD:雙字節(jié)型.
  (3)REG_BINARY:二進制型.

  以上三種類型第1種和第2種用得最多,第3種類型在某些場合可以用第2種加以替代,這三種類型的賦值方法如下:
  對于REG_SZ型:直接用字符串賦予,如"text","string"等
  對于REG_DWORD型和REG_BINARY型則有兩種賦值方式

  i)直接用十進制的數(shù)表示,如:0,1等.
  ii)用十六進制的數(shù)表示,如:0x12,0xff等. 看例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
'write.VBs
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主要是用來刪除注冊表中已存在的主鍵或鍵值,該操作是一種極其危險的操作,它能將主鍵或鍵值毫不留情的在注冊表中“砍掉”,無論該鍵值下面有多重要的數(shù)據(jù),它都能暢行無阻,因此在使用該操作時務必小心。

  刪除操作的參數(shù)形式與讀操作的參數(shù)形式幾乎完全相同,只是有一點小小的區(qū)別,那就是刪除操作不需要將操作的返回值送給某一變量,例如:

?
1
2
3
4
5
6
7
'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主鍵

  強調一點,不要更改注冊表中已存在的主鍵或鍵值,更不要將它們刪除,因為對注冊表進行了不當?shù)膶懖僮骰騽h操作,情況嚴重的會導致系統(tǒng)崩潰!如果你真想這么做,那就請你作好注冊表的備份。

應用實例

1、讀本機“計算機名”

?
1
2
3
4
5
6
7
8
'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、隱藏快捷方式圖標上的小箭頭

?
1
2
3
4
5
6
7
8
'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、改造“開始”菜單

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
'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) '禁用“開始”菜單中的“關閉系統(tǒng)”功能

4、向Windows中添加自啟動程序

該程序能在開機時自動運行。

?
1
2
3
4
5
6
7
8
9
10
11
12
'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!")

這篇文章就介紹到這了,希望大家以后多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 西施打开双腿下面好紧 | 四虎私人影院 | 蜜桃免费 | 日本孕妇与黑人xxxxxx | 欧乱色国产精品兔费视频 | 无码人妻精品一区二区蜜桃在线看 | 好奇害死猫在线观看 | 欧美精品色精品一区二区三区 | 国产精品久久香蕉免费播放 | 丰满大乳欲妇三级k8 | 日本日日黄 | 精品国产国产综合精品 | 国色天香社区在线视频播放 | 亚洲免费小视频 | 四虎影视永久免费视频观看 | 精品一久久香蕉国产线看观 | 99热免费在线 | 国产高清好大好夹受不了了 | 91精品国产免费久久 | 91中文字幕yellow字幕网 | 啊哈~嗯哼~用力cao我小说 | 亚洲图片综合网 | 美女跪式抽搐gif动态图 | 边摸边操 | 欧美一区二区三区四区五区六区 | 欧美极品摘花过程 | 激情视频图片小说qvdo | 久久理论片迅播影院一级 | 91啦丨porny丨蝌蚪 | 国产在亚洲线视频观看 | 91制片厂制作果冻传媒八夷 | 95视频免费看片 | 亚洲高清无在码在线电影 | www.99热.com| 亚洲国产精品一区二区三区久久 | 18美女光胸光屁屁洗澡 | 国产精品久久久精品视频 | 幻女free性俄罗斯第一次摘花 | 草莓绿巨人香蕉茄子芭乐 | 成年女人毛片免费观看97 | 午夜福利理论片在线播放 |