濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > vbscript Registry 注冊(cè)表操作實(shí)現(xiàn)代碼(讀寫刪除)

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

熱門標(biāo)簽:新密防封卡外呼系統(tǒng)違法嗎 百度地圖標(biāo)注怎么卸載 前鋒辦理400電話申請(qǐng) 辦理膠州400電話財(cái)稅 加盟電銷機(jī)器人好的品牌 海外美發(fā)店地圖標(biāo)注 打電話的外呼系統(tǒng)貴不貴 陜西高頻外呼回?fù)芟到y(tǒng)哪家好 外呼營銷下單系統(tǒng)

VBScript Code:

' 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程序文件的擴(kuò)展名為.vbs,該腳本程序在窗口界面是由wscript.exe文件解釋執(zhí)行的,在字符界面是由cscript.exe文件解釋執(zhí)行的,命令格式為:cscript filename.vbs

創(chuàng)建對(duì)象

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

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

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

對(duì)象的方法

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

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

方法的參數(shù)

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

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

方法詳解

  1、RegRead操作詳解

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

 '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主鍵的默認(rèn)值,并將該數(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主要是用來在注冊(cè)表中新建主鍵或鍵值,并要賦予給它們一個(gè)初始值,該操作同樣可以對(duì)注冊(cè)表中以存在的主鍵或鍵值進(jìn)行數(shù)據(jù)的修改,因此寫操作的參數(shù)結(jié)構(gòu)就比讀操作要復(fù)雜一些,它不僅要路徑參數(shù),還要一個(gè)初始值和類型參數(shù).

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

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

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

'write.VBs 
Dim OperationReGIStry 
Set OperationRegistry=WScript.CreateObject("WScript.Shell") 
Default=OperationRegistry.RegRead("HKCR\") 
'獲取一個(gè)空值 (null) 
  
OperationRegistry.RegWrite "HKCR\.xxf\",Default 
'在根鍵HKEY_CLASSES_ROOT之下新建主鍵.xxf,并置其默認(rèn)值為空 
  
OperationRegistry.RegWrite "HKCR\.xxf\","xxffile" 
'在根鍵HKEY_CLASSES_ROOT之下新建主鍵.xxf,并置其默認(rèn)值?quot;xxffile" 
  
OperationRegistry.RegWrite "HKCR\.xxf\value1","string" 
'在主鍵.xxf之下新建一個(gè)字符串型鍵值value1,并置其初始值為"string" 
  
OperationRegistry.RegWrite "HKCR\.xxf\value2",1,"REG_DWORD" 
'在主鍵.xxf之下新建一個(gè)REG_DWORD型鍵值value2,并置其初始值為1 
  
OperationRegistry.RegWrite "HKCR\.xxf\value3",0Xff,"REG_BINARY" 
'在主鍵.xxf之下新建一個(gè)二進(jìn)制型鍵值value3,并置其初始值為十六進(jìn)制的ff

   3、RegDelete操作詳解

  刪除操作RegDelete主要是用來刪除注冊(cè)表中已存在的主鍵或鍵值,該操作是一種極其危險(xiǎn)的操作,它能將主鍵或鍵值毫不留情的在注冊(cè)表中“砍掉”,無論該鍵值下面有多重要的數(shù)據(jù),它都能暢行無阻,因此在使用該操作時(shí)務(wù)必小心。

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

'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主鍵 

  強(qiáng)調(diào)一點(diǎn),不要更改注冊(cè)表中已存在的主鍵或鍵值,更不要將它們刪除,因?yàn)閷?duì)注冊(cè)表進(jìn)行了不當(dāng)?shù)膶懖僮骰騽h操作,情況嚴(yán)重的會(huì)導(dǎo)致系統(tǒng)崩潰!如果你真想這么做,那就請(qǐng)你作好注冊(cè)表的備份。

應(yīng)用實(shí)例

1、讀本機(jī)“計(jì)算機(jī)名”

'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("計(jì)算機(jī)名為"ComputerName) 

2、隱藏快捷方式圖標(biāo)上的小箭頭

'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 RegPathArgument,Key_Data,Type_Name 
MsgBox("Success!") 
End Sub 
  
Call Change(StartMenu_Run) '禁用“開始”菜單中的“運(yùn)行”功能 
Call Change(StartMenu_Find) '禁用“開始”菜單中的“查找”功能 
Call Change(StartMenu_Close) '禁用“開始”菜單中的“關(guān)閉系統(tǒng)”功能 

4、向Windows中添加自啟動(dòng)程序

該程序能在開機(jī)時(shí)自動(dòng)運(yùn)行。

'AddAutoRunProgram.vbs 
'假設(shè)該程序在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" 
'該自啟動(dòng)程序的全路徑文件名 
AutoRunProgram.Write RegPathKey_Name,Key_Data,Type_Name 
'在啟動(dòng)組中添加自啟動(dòng)程序autorun.exe 
MsgBox("Success!") 

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

您可能感興趣的文章:
  • VBS通過WMI監(jiān)視注冊(cè)表變動(dòng)的代碼
  • vbs 注冊(cè)表操作類代碼
  • vbs 注冊(cè)表操作代碼(添加刪除)
  • VBS腳本使用WMI操作注冊(cè)表的代碼
  • vbscript 注冊(cè)表腳本書寫
  • vbs刪除注冊(cè)表項(xiàng)的代碼
  • 用vbs操作注冊(cè)表實(shí)例代碼
  • Vbscript寫注冊(cè)表的方法
  • VBS讀取注冊(cè)表的兩種方法

標(biāo)簽:梅州 牡丹江 武威 河南 四平 伊春 阜陽 咸陽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《vbscript Registry 注冊(cè)表操作實(shí)現(xiàn)代碼(讀寫刪除)》,本文關(guān)鍵詞  vbscript,Registry,注冊(cè)表,操作,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《vbscript Registry 注冊(cè)表操作實(shí)現(xiàn)代碼(讀寫刪除)》相關(guān)的同類信息!
  • 本頁收集關(guān)于vbscript Registry 注冊(cè)表操作實(shí)現(xiàn)代碼(讀寫刪除)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    崇礼县| 襄垣县| 丹寨县| 房山区| 福鼎市| 城步| 西城区| 阿克陶县| 确山县| 临沂市| 当涂县| 南乐县| 泌阳县| 胶州市| 彭州市| 璧山县| 扎囊县| 丰城市| 托克逊县| 镇远县| 高淳县| 余庆县| 呼伦贝尔市| 宁海县| 普兰县| 静乐县| 南陵县| 东方市| 巴楚县| 交城县| 平武县| 神木县| 纳雍县| 大厂| 特克斯县| 五峰| 兴安县| 孝感市| 乐平市| 探索| 瑞安市|