Работа с реестром (registry)
REG-SZ: "registry_path" "string_value"
Устанавливает строковое значение реестра.
Пример:
#( test_reg_sz
NoActive
Action:
REG-SZ: "HKEY_LOCAL_MACHINE\SOFTWARE\test\first" "test string value"
)#
REG-DWORD: "registry_path" <number>
Устанавливает числовое значение реестра.
DWORD (двойное слово) - одиночное 32-битное значение, восемь шестнадцатеричных цифр.
Пример:
#( test_reg_dword
NoActive
Action:
REG-DWORD: "HKEY_LOCAL_MACHINE\SOFTWARE\test\second" 16
)#
Существует постфиксный аналог этого слова (его удобно использовать при работе с переменными):
S" HKEY_LOCAL_MACHINE\SOFTWARE\test\first" 16 REG-DWORD S" HKEY_LOCAL_MACHINE\SOFTWARE\test\first" first_var @ REG-DWORD
REG-DELETE-KEY: "registry_path"
Удаляет из реестра указанный ключ и все его подключи.
Пример:
#( test_reg_delete_key
NoActive
Action:
REG-DELETE-KEY: "HKEY_LOCAL_MACHINE\SOFTWARE\test"
)#
REG-DELETE-VALUE: "registry_path"
Удаляет указанное значение из реестра. Работает и со строковыми и с числовыми значениями.
Пример:
#( test_reg_delete_value
NoActive
Action:
REG-DELETE-VALUE: "HKEY_LOCAL_MACHINE\SOFTWARE\test\first"
REG-DELETE-VALUE: "HKEY_LOCAL_MACHINE\SOFTWARE\test\second"
)#
Постфиксное слово, которое проверяет наличие указанного ключа в реестре. Возвращает TRUE (-1) если ключ существует и FALSE (0) в противном случае.
Пример:
#( test_reg_key_exist
NoActive
Action:
S" HKEY_LOCAL_MACHINE\SOFTWARE" REG-KEY-EXIST?
IF
\ do smth useful
THEN
)#
<buffer> GET-REG: "registry_path"
Получает и записывает указанное значение из реестра в созданный пользователем буфер.
Строковые значения следует помещать в массивы, а числовые - в переменные.
Примеры:
#( test_get_reg
NoActive
CREATE reg_value 256 ALLOT
Action:
reg_value GET-REG: "HKEY_LOCAL_MACHINE\SOFTWARE\test\first"
MSG: "Извлекли строковое значение: %reg_value ASCIIZ>%"
)#
#( test_get_reg1
NoActive
VARIABLE reg_variable
Action:
reg_variable GET-REG: "HKEY_LOCAL_MACHINE\SOFTWARE\test\second"
MSG: "Извлекли числовое значение: %reg_variable @%"
)#
Слово ASCIIZ> разделяет адрес строки с нулем на конце (zero-terminated string) на адрес и счетчик.
Некоторые замечания:
1) Следует отметить, что редактирование реестра (особенно удаление из реестра незнакомых ключей) - это потенциально опасное действие, поэтому рекомендую делать резервную копию реестра перед активными изменениями.
2) Не стоит с помощью nnCron пытаться работать с пользовательской веткой реестра HKEY_CURRENT_USER. nnCron выполняется от имени SYSTEM и не "видит" эту ветку, поскольку в контексте пользователя SYSTEM ветки остальных пользователей располагаются в разделе HKEY_USERS. Под Win2000/XP вы можете воспользоваться словом NAME2SIDS, чтобы сгенерировать SID-строку и с ее помощью получить доступ к пользовательским веткам HKEY_USERS.
Cм. также:
![]()