Что нового

Как получить список ключей реестра

assch

Новичок
Сообщения
166
Репутация
4
Как получить просто список ключей реестра без их значений.
Функция _RegExport('HKCU', '1.txt')
Сделает снимок и запишет в текстовый файл всю ветку HKCU.
все ключи и их значения.
например вот так:

[HKEY_CURRENT_CONFIG]

[HKEY_CURRENT_CONFIG\Software]

[HKEY_CURRENT_CONFIG\Software\Fonts]
"FIXEDFON.FON"="vgafixr.fon"
"FONTS.FON"="vgasysr.fon"
"OEMFONT.FON"="vga866.fon"
"LogPixels"=dword:00000060

[HKEY_CURRENT_CONFIG\Software\Microsoft]

А как сделать так чтобы функция просто выдала список всех ключей
этой ветки,также в алфавитном порядке, но только без их значений.
соответственно вот так:

[HKEY_CURRENT_CONFIG]
[HKEY_CURRENT_CONFIG\Software]
[HKEY_CURRENT_CONFIG\Software\Fonts]
[HKEY_CURRENT_CONFIG\Software\Microsoft]

И второе - обычно информация выводится вот так:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Prefetcher]
"TracesProcessed"=dword:00000003
"TracesSuccessful"=dword:00000002
"LastTraceFailure"=dword:0000051a

[HKEY_CURRENT_USER\Software\Microsoft\Notepad]
"iWindowPosX"=dword:00000044
"iWindowPosY"=dword:00000052
"iWindowPosDX"=dword:00000395
"iWindowPosDY"=dword:000000ee

А можно сделать так чтобы она выводилась просто в строчку
примерно вот так:

'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Prefetcher', 'TracesProcessed', 'REG_DWORD', '00000003'
'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Prefetcher', 'TracesSuccessful', 'REG_DWORD', '00000002'
'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Prefetcher', 'LastTraceFailure', 'REG_DWORD', '0000051a'
'HKCU\SOFTWARE\Microsoft\Notepad', 'iWindowPosX', 'REG_DWORD', '00000044'
'HKCU\SOFTWARE\Microsoft\Notepad', 'iWindowPosY', 'REG_DWORD', '00000052'
'HKCU\SOFTWARE\Microsoft\Notepad', 'iWindowPosDX', 'REG_DWORD', '00000395'
'HKCU\SOFTWARE\Microsoft\Notepad', 'iWindowPosDY', 'REG_DWORD', '000000ee'
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
assch
Как получить просто список ключей реестра без их значений.
Такой вот пример:
Код:
$key = "HKEY_CURRENT_CONFIG"
KeyList($key)
Func KeyList($key)
	ConsoleWrite($key&@CRLF)
	$i = 1
	While 1
		$var = RegEnumKey($key, $i)
		If @error <> 0 then ExitLoop		
		$i = $i + 1 		
		KeyList($key&"\"&$var)				
	WEnd	
EndFunc
 
Автор
A

assch

Новичок
Сообщения
166
Репутация
4
Спасибо Yuriy :beer:
Осталось найти ответ на второй вопрос
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
assch
Осталось найти ответ на второй вопрос
Примерно так:
Код:
$key = "HKCU\SOFTWARE\Microsoft\Notepad"
$i = 1
While 1
	$var1 = RegEnumVal($key, $i)
	if @error <> 0 Then ExitLoop
	$var2 = RegRead($key, $var1)
	$Type = @EXTENDED
	Switch $Type
	Case 0
		$Type = "REG_NONE"	
	Case 1
		$Type = "REG_SZ"
	Case 2
		$Type = "REG_EXPAND_SZ"
	Case 3
		$Type = "REG_BINARY"
	Case 4
		$Type = "REG_DWORD"
		$var2 = Hex($var2)
	Case 5
		$Type = "REG_DWORD_BIG_ENDIAN"
	Case 6
		$Type = "REG_LINK"
	Case 7
		$Type = "REG_MULTI_SZ"
	Case 8
		$Type = "REG_RESOURCE_LIST"
	Case 9
		$Type = "REG_FULL_RESOURCE_DESCRIPTOR"
	Case 10
		$Type = "REG_RESOURCE_REQUIREMENTS_LIST"		
	EndSwitch	
	ConsoleWrite("'" & $key & "', " & "'" & $var1 & "', " & "'" & $Type & "', " & "'" & $var2 & "'" & @CRLF)
	$i = $i + 1
WEnd
 
Верх