Необходимо программно (из 1С предприятия) удалить из реестра сведения о текущей базе (чтобы ее не было в списке баз при запуске 1С). Юзаю 1С++. Никак не получается. Код простой (с пометками):
РеестрВинды = СоздатьОбъект("РеестрWin");
РеестрВинды.ОтладочныеСообщения(1); // добавил для отладки
Если РеестрВинды.ОткрытьКлюч("HKEY_CURRENT_USER","Software\1C\1Cv7\7.7\Titles","KEY_ALL_ACCESS") = 1 Тогда
// Сюда попадаем
Путь = КаталогИБ();
Значение = "";
РеестрВинды.QueryValue(Путь,Значение);
Сообщить(Значение); // Ключ находит и сообщает название базы (тоже добавил для отладки)
Если РеестрВинды.УдалитьКлюч(Путь) = 0 Тогда
// всегда попадает сюда
КонецЕсли;
КонецЕсли;
В окне сообщений:
Если РеестрВинды.УдалитьКлюч(Путь) = 0 Тогда
Не удается найти указанный файл.
При этом вычищается весь раздел "Titles" за исключением нужного параметра. Кто работал с реестром, подскажите как удалить параметр?
Разобрался, нужно использовать метод УдалитьЗначение() вместо УдалитьКлюч(). Хотя как-то странно... удаляю строковый параметр целиком (название + значение). Все работает. Спасибо (2) навел на мысль.