2011-11-30 97 views
3

我想找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\IDE下的關鍵「設備參數註冊表項。搜索所有路徑的子項

但是,在BD/DVD/CD ROM/Writers使得每個系統不同的密鑰。雷目前是HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\IDE\CdRomHL-DT-ST_DVDRAM_GH20NS15________________IL00____\5&15602d3e&0&0.1.0\Device Parameters

但我想搜索每一個子項下的IDE和下BD/DVD/CD ROM/Writers獲取設備的參數。有一個二進制值DefaultDVDregion,我想將其設置爲0,每BD/DVD/CD ROM/Writers

我想做到這一點在VBScript中。

回答

5

該代碼將循環遍歷HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\IDE中的所有密鑰,並且對於每個密鑰,都可以查看它以打印出DefaultDvdRegion的DWORD值。

Option Explicit 
Const HKEY_LOCAL_MACHINE = &H80000002 
Dim oReg : Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv") 
Dim oShell : Set oShell = CreateObject("WScript.Shell") 
Dim sPath, aSub, sKey, aSubToo, sKeyToo, dwValue 

' Get all keys within sPath 
sPath = "SYSTEM\CurrentControlSet\Enum\IDE" 
oReg.EnumKey HKEY_LOCAL_MACHINE, sPath, aSub 

' Loop through each key 
For Each sKey In aSub 
    ' Get all subkeys within the key 'sKey' 
    oReg.EnumKey HKEY_LOCAL_MACHINE, sPath & "\" & sKey, aSubToo 
    For Each sKeyToo In aSubToo 
     ' Try and get the DWORD value in Device Parameters\DefaultDvdRegion 
     oReg.GetDWORDValue HKEY_LOCAL_MACHINE, sPath & "\" & sKey & "\" & sKeyToo & "\Device Parameters", "DefaultDvdRegion", dwValue 
     Wscript.Echo "DVDRegion of " & sPath & "\" & sKey & "\" & sKeyToo & " = " & dwValue 
    Next 
Next 

這不是我最好的代碼,但應該給你你正在尋找的。在我的機器,我得到下面的輸出:

DVDRegion of SYSTEM\CurrentControlSet\Enum\IDE\CdRomOptiarc_DVD_RW_AD-7200S_________________1.0A____\5&3308a5ad&0&1.0.0 = 2 
DVDRegion of SYSTEM\CurrentControlSet\Enum\IDE\DiskSAMSUNG_HD103UJ_________________________1AA01113\5&76d4b99&0&0.0.0 = 

這是有道理的,因爲我的DVD驅動器有2個(歐洲)的一個地區代碼,我的硬盤驅動器有沒有地區代碼。