0 / 0 / 0
Регистрация: 20.07.2016
Сообщений: 22
|
|||||||||||
1 | |||||||||||
Удаление ключа реестра через DeleteKey25.07.2016, 18:31. Показов 2628. Ответов 8
Метки нет (Все метки)
День добрый. Такая проблема - не могу удалить ключ реестра через DeleteKey, в котором ключ указан переменной типа String.
Процедура удаления
0
|
25.07.2016, 18:31 | |
Ответы с готовыми решениями:
8
Удаление ключей реестра через Delphi Чтение ключа реестра Получение значений ключа реестра Доступность чтения ключа из реестра |
Заблокирован
|
|
25.07.2016, 19:02 | 2 |
Код
procedure TForm1.DeleteKey(key, listboxstr: String; count: integer; ListBox: TListBox); var Reg : TRegistry; begin if AnsiPos(key,listboxstr)=0 then exit; // если строка не найдена, сразу выходим из процедуры. Reg:=TRegistry.Create; // создаётся объект. он занимает место в памяти, и после использования должен быть удален. try Reg.RootKey:=HKEY_LOCAL_MACHINE; Reg.DeleteKey(listboxstr); reg.free; // освобождение ресурсов end; end; Пример: имеем ключ: Software\Boro-Boro\123. При вызове DeleteKey будет удален подраздел "123"
0
|
0 / 0 / 0
Регистрация: 20.07.2016
Сообщений: 22
|
|||||||||||
27.07.2016, 19:29 [ТС] | 3 | ||||||||||
Спасибо, работает!
Еще есть пару вопросов по той же программе: 1) Не могу записать несколько строк в параметр реестра.
Пробовал через \n, #10+#13, #13+#10 - ничего не помогает. 2) В данном фрагменте кода
Понимаю, что ругается скорее всего на обращение к несуществующим строкам, но не могу понять, в чем проблема алгоритма. Спасибо.
0
|
Хитрая блондиночка $)
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
|
|
27.07.2016, 19:51 | 4 |
По-моему тебе нужен метод WriteBinaryData а не WriteString, если хочешь писать многострочный параметр.
Скорее всего из-за
который помещен внутрь цикла, и я бы сказала "нарушает его целостность".
0
|
Заблокирован
|
||||||
27.07.2016, 21:57 | 5 | |||||
С прискорбием обнаружил, что в классе TRegistry (седьмая дельфи) возможность работать с REG_MULTI_SZ - напрочь отсутствует. Возможно, этот тип ключей - нововведение, которого не было на момент разработки делфи.
Вот код юнита, который расширяет возможности TRegistry.
0
|
0 / 0 / 0
Регистрация: 20.07.2016
Сообщений: 22
|
||||||||||||||||
28.07.2016, 17:40 [ТС] | 6 | |||||||||||||||
Не могу реализовать через WriteBinaryData.
Сделал так: записываю строки в массив типа string, и записываю его в реестр. Прочитал об это на разных форумах, но точной реализации записи именно строк там нет.
Можете подправить, как правильно это сделать? Массив типа byte не могу сделать, строки туда не переводятся. Теперь вопрос с листбоксами. Удалил сейчас, ошибка осталась. Заметил такую вещь: в данном коде в цикле выполняются подряд 3 условия - сразу три строки из листбокса удаляются. Больше ключей там нет - листбокс становится пустым. как раз на 4 условии выскакивает ошибка. Попробовал решить следующим образом через счетчик "k" - все получилось, удаляет то, что нужно.
Можете подсказать, где изъян? Потому что вроде в одном месте алгоритм работает, в другом - нет. Спасибо!
0
|
Хитрая блондиночка $)
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
|
||||||
28.07.2016, 17:54 | 7 | |||||
Значит этот класс действительно не научили работать с многострочным параметром.
Опиши цикл так:
0
|
0 / 0 / 0
Регистрация: 20.07.2016
Сообщений: 22
|
||||||
29.07.2016, 15:33 [ТС] | 9 | |||||
Обошел я проблему с реестром. Как говорится, умный в гору не пойдет...=)
Более важный вопрос с листбоксом. Еще долго сидел с ним, но так и не получается... Имеем код:
Программа выводит в листбокс эти три папки (что и должно быть) и останавливается с ошибкой listbox out of bounds (3). Количество нужных и пробных папок менял - аналогично в листбокс выводит как надо и выдает ту же ошибку с разными цифрами. Замена "j:= listbox3.items.count downto 0 de begin" не помогла. Пробовал по данному коду даже новый проект создать - не помогает. Друзья, выручайте.
0
|
29.07.2016, 15:33 | |
29.07.2016, 15:33 | |
Помогаю со студенческими работами здесь
9
Удаление ключа из реестра Удаление ключа реестра Удаление защищенного ключа реестра Проверка наличия определённого ключа реестра и добавление этого ключа в реестр при его отсутствии Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |