2014-01-24 99 views
0

關於如何讀取/寫入窗口以及它們是可用的良好jni/non-jni解決方案的數量,已經有很多問題。我已經經歷了一些,但他們都沒有提供遍歷註冊表的方法。如何在Windows註冊表中查找文件夾中的所有文件夾

通過遍歷,我的意思是說我想知道Windows註冊表中特定文件夾的所有子文件夾,然後是該文件夾中的所有鍵。

可用的解決方案,讓我們一個讀取註冊表項,而不是註冊表文件夾來查找其中的子文件夾。

+2

術語記:你叫什麼文件夾真的叫*鍵*。一個鍵內可以是其他鍵(子鍵),以及*值*。值有一個*名稱*和*數據*。 –

回答

0

我需要一些Java的解決方案,但後來發現了一些VBScrip說可以很容易地做到這一點

Const HKEY_LOCAL_MACHINE = &H80000002 
strKeyPath = "SOFTWARE\MICROSOFT\Windows\CurrentVersion\MMDevices\Audio\Capture" 

Sub EnumerateKeys(hive, key) 
    'WScript.Echo key 
    reg.EnumKey hive, key, arrSubKeys 
    If Not IsNull(arrSubKeys) Then 
    For Each subkey In arrSubKeys 
     EnumerateKeys hive, key & "\" & subkey 
    Next 
    End If 
    reg.GetDWORDValue hive,key,"DeviceState",nn 
    'WScript.Echo key & " = " & nn 
    If nn=268435457 Then 
     'WScript.Echo "Good morning!" 
     reg.SetDWORDValue hive,key,"DeviceState",1 
    ElseIf nn=1 Then 
     reg.SetDWORDValue hive,key,"DeviceState",268435457 
    Else 
     'WScript.Echo "Have a nice day!" 
    End If 
End Sub 

Set reg = GetObject("winmgmts://./root/default:StdRegProv") 

EnumerateKeys HKEY_LOCAL_MACHINE, strKeyPath 

上面的腳本不僅遍歷密鑰&子集它也讀取和比較,然後設置DWORD值。

Quick Reference

相關問題