Что нового

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

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,762
Репутация
1,152
Или можешь отсюда выковырять, с учётом ярлыков в автозагрузке.
 

AZJIO

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

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

XM

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

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

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

AZJIO

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

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

XM

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

Хм... Видимо ты такого не встречал... Но увы, бывает и такое. :whistle:

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

Да.
 
Верх