VBS 操作註冊表 十六進位

來源:互聯網
上載者:User

標籤:

使用VBS操作註冊表,通常使用RegRead/RegWrite/RegDelete方法,如:

RegRead:

   ‘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)   ‘將讀取的資料顯示出來

RegWirte:

‘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

RegDelete:

‘delete.vbsDim OperationRegistrySet OperationRegistry=WScript.CreateObject("WScript.Shell")OperationRegistry.RegRead("HKCR\.xxf\value")‘刪除.xxf主鍵之下的value索引值OperationRegistry.RegRead("HKCR\.xxf\")‘刪除根鍵HKEY_CLASSES_ROOT之下的.xxf主鍵

 

但是,如果要插入十六進位的資料就會有問題,如寫入以下註冊表索引值,如果使用RegWrite,會報“類型不符”錯誤,因為RegWirte在寫十六進位的值時,只支援一個值,不支援數組:

Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3] "{AEBA21FA-782A-4A90-978D-B72164C80120}"=hex:1a,37,61,59,23,52,35,0c,7a,5f,20,   17,2f,1e,1a,19,0e,2b,01,73,13,37,13,12,14,1a,15,2a,4e,2c,08,0d,20,1b,28,18,   36,32 

 使用RegWrite方式

Dim OperationRegistry  Set OperationRegistry=WScript.CreateObject("WScript.Shell")  OperationRegistry.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3","0xff,0x11","REG_BINARY"

 

報錯如下:

---------------------------Windows Script Host---------------------------指令碼:C:\Work\Documents\BOC\BOC.Bancslink\VBS\ie_config\ie_forie - 副本.vbs行:3字元:1錯誤:類型不符代碼:800A000D源: Microsoft VBScript 執行階段錯誤---------------------------確定   ---------------------------

 

 解決方案:
Const HKEY_CURRENT_USER = &H80000001strComputer = "."Set objRegistry = GetObject _    ("winmgmts:\\" & strComputer & "\root\default:StdRegProv")strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3"strValueName = "{1EBA21FA-782A-4A90-978D-B72164C80120}"arrValues = Split("1a,37,61,59,23,52,35,0c,7a,5f,20,17,2f,1e,1a,19,0e,2b,01,73,13,37,13,12,14,1a,15,39,4e,2c,08,0d,20,1b,28,18,36,32", ",")For i = 0 To UBound(arrValues) : arrValues(i) = CByte("&H" & arrValues(i)) : NexterrReturn = objRegistry.SetBinaryValue _    (HKEY_CURRENT_USER, strKeyPath, strValueName, arrValues)

 

參考:

http://www.cnblogs.com/heimirror/archive/2008/06/25/1229483.html

https://msdn.microsoft.com/de-de/library/aa393286%28v=vs.85%29.aspx

http://stackoverflow.com/questions/26967459/convert-hex-string-into-array-and-write-it-to-registry-vbscript

VBS 操作註冊表 十六進位

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.