Что нового

Чтение параметров требуемого раздела реестра

blacksergo

Новичок
Сообщения
20
Репутация
1
Подскажите, как последовательно прочитать все параметры хранящиеся в требуемом разделе реестра (например: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run) и вывести их значения в отдельное окно. Проще говоря, необходимо узнать, что у меня запускается при загрузке Windows.
 

kzru_hunter

Осваивающий
Сообщения
144
Репутация
49
Код:
#include <array.au3>
$reg_path = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
Dim $array[30][2]

$count = 0
While 1
	$count += 1
	$array[$count][0] = RegEnumVal($reg_path, $count)
	if @error <> 0 Then ExitLoop
	$array[$count][1] = RegRead($reg_path, $array[$count][0])
WEnd

$array[0][0] = $count-1
ReDim $array[$count][2]

_ArrayDisplay($array)
 

XM

Знающий
Сообщения
70
Репутация
8
Предыдущий пример хороший, но он показывает далеко не все запускаемые программы в Windows. Существуют и др. ветки реестра.

Вот скрипт, проверяющий все ветви (за исключением Machine_User_Run, который дублирует User_Run):

Код:
#include <array.au3>

Global $Def_User_Run = 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run'
Global $User_Run = 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run'
Global $User_Run_Once = 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce'
Global $Machine_Run_Once = 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce'
Global $Machine_Run_OnceEx = 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx'

Dim $aPath[5] = [$Def_User_Run, $User_Run, $User_Run_Once, $Machine_Run_Once, $Machine_Run_OnceEx]
Dim $array[30][2]
Global $row = 1, $i = 0, $key = 1


For $i = 0 To 4
	While 1
			$array[$row][0] = RegEnumVal($aPath[$i], $key)
			if @error <> 0 Then ExitLoop
			$array[$row][1] = RegRead($aPath[$i], $array[$row][0])
			$row += 1
			$key += 1
	WEnd
	$key = 1
Next

$array[0][0] = $row - 1
ReDim $array[$row][2]
_ArrayDisplay($array)
 

AZJIO

Меценат
Меценат
Сообщения
2 752
Репутация
1 149
Или можешь отсюда выковырять, с учётом ярлыков в автозагрузке.
 

AZJIO

Меценат
Меценат
Сообщения
2 752
Репутация
1 149
Vendor
Дык там и реестр шарится. Только если ярлыки присутствуют, это не значит, что они дублируются в реестре, так что реестр о ярлыках автозагрузки не знает.

RunOnce полезна только для поиска вирусов. Туда прописываются только временные доустановки, когда система не даёт что-то поменять в работающей системе.
 

XM

Знающий
Сообщения
70
Репутация
8
AZJIO сказал(а):
Vendor
Дык там и реестр шарится. Только если ярлыки присутствуют, это не значит, что они дублируются в реестре, так что реестр о ярлыках автозагрузки не знает.
Да это я так, на всякий случай... :smile:

RunOnce полезна только для поиска вирусов. Туда прописываются только временные доустановки, когда система не даёт что-то поменять в работающей системе.
В моей практике бывали случаи, когда в RunOnce зависали параметры для запуска программ, имеющих некорректный код удаления этих самых параметров... Ни чего страшного, но глаза мозолит по чем зря...
 

AZJIO

Меценат
Меценат
Сообщения
2 752
Репутация
1 149
Vendor
Ни чего страшного, но глаза мозолит по чем зря..
Эта ветка очищается автоматически после перезагрузки, то есть запись там хранится до первой перезагрузки, как она может там чего-то мозолить?

Да это я так, на всякий случай...
я понял... ты знал что я отвечу да?
 

XM

Знающий
Сообщения
70
Репутация
8
AZJIO сказал(а):
Vendor
Эта ветка очищается автоматически после перезагрузки, то есть запись там хранится до первой перезагрузки, как она может там чего-то мозолить?
Хм... Видимо ты такого не встречал... Но увы, бывает и такое. :whistle:

Да это я так, на всякий случай...
я понял... ты знал что я отвечу да?
Да.
 
Верх