Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Получение списка неизвестных ключей реестра (http://forum.oszone.net/showthread.php?t=133985)

morgan1991 06-03-2009 14:43 1056521

Получение списка неизвестных ключей реестра
 
Здравствуйте!
В очередной раз прошу помощи.
Допустим есть ключ HKEYLM\test
В нём есть три папки:
HKEYLM\test\1
HKEYLM\test\2
HKEYLM\test\3

Причём с неизвестными именами

Вот как по средствам аутоит определить как называются эти папки?
Их нужно считать.

Creat0R 06-03-2009 18:27 1056660

Цитата:

Цитата morgan1991
как по средствам аутоит определить как называются эти папки? »

Какие папки? как скрипт будет знать что ему нужно, в ветке могут быть множество ключей. Если имеется в виду перечитывание всей ветки, то возможно поможет Расширенная библиотека для работы с реестром.

morgan1991 06-03-2009 22:46 1056839

Ничего полезного я в ней не нашол, может просто е понял... (плохо с английским)
Вообщем мне нужно следующее:
Есть ветка:
hkeyy\ggg\test
в ней со временем будут появляться ветки с разными именами и будет появляться следующее:
hkeyy\ggg\test\имя_ветки
hkeyy\ggg\test\имя_ветки2
hkeyy\ggg\test\имя_ветки3
в каждой такой ветке будут ключи path типа REG_SZ

Вот как искать все эти ключи не зная имя_ветки, имя_ветки2, имя_ветки3 ???

proxy 06-03-2009 23:04 1056867

Цитата:

Вот как искать все эти ключи не зная имя_ветки, имя_ветки2, имя_ветки3 ???
1. простым перебором по названию "имя_ветки"
т.е. сначала счиать названия всех ключей из "hkeyy\ggg\test\" в массив например:
Код:

While 1
    $var = RegEnumKey("HKEY_LOCAL_MACHINE\SOFTWARE", $i)
    If @error <> 0 then ExitLoop
    MsgBox(4096, "SubKey #" & $i & " under HKLM\Software: ", $var)
WEnd

а далее читать данные из все ключей которые в массиве.

2. определять по лигике програамы в какой из "имя_ветки" стоит читать данные...
т.е. если ныжны данные бля "блока2", то читаь из "имя_ветки2", а если из "блока1" то из "имя_ветки"

Creat0R 06-03-2009 23:10 1056876

Цитата:

Цитата morgan1991
как искать все эти ключи не зная имя_ветки, имя_ветки2, имя_ветки3 ? »

Вот так:

Код:

#include <Registry_UDFs.au3>
#include <Array.au3>
;

;Получаем ветку ключей

$aKeys = _RegReadKeyValueToArray("hkeyy\ggg\test", 0)

_ArrayDisplay($aKeys)

;Из полученных ключей, извлекаем имена в ключах
For $i = 1 To $aKeys[0]
    $aNameKeys = _RegReadKeyValueToArray($aKeys[$i], 1)
    If $aNameKeys[0] > 0 Then _ArrayDisplay($aNameKeys)
Next


morgan1991 07-03-2009 00:18 1056948

спс


Время: 09:18.

Время: 09:18.
© OSzone.net 2001-