Работа с реестром (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м. также: