Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 042

/ вопрос решён /

Здравствуйте, уважаемые эксперты! Подскажите кто знает как открыть редактор реестра и в нём же чтоб открылась нужная ветка? Мои предположения сводятся к ShellExecute , но не знаю как это сделать.

eclipse Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: eclipse (статус: Посетитель)
Вопрос отправлен: 21 февраля 2011, 15:46
Состояние вопроса: решён, ответов: 1.

Ответ #1. Отвечает эксперт: Вадим К

Здравствуйте, eclipse!
Напрямую так просто не получится. Но можно заюзать маленькую программку от Руссиновича RegJump - ей нужно передать путь и готово. А для запуска можно хоть WinExec использовать. (поиск по сайту приедет на десятки обсуждений того, как запускать программы).
Если же хочется без внешних программ, то можно посмотреть на это, хотя там на С#, но какая разница - идею можно подсмотреть.

Но есть ещё одна хитрая идея - дело в том, что RegEdit запоминает, какой ключ он открывал в последний раз. Если это дело подредактировать, а потом запустить его, то как раз откроется там, где нужно. Как это сделать - смотрим тут

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 21 февраля 2011, 16:04
Оценка за ответ: 5

Комментарий к оценке: Cпасибо! второй вариант попроще.

Мини-форум вопроса

Всего сообщений: 4; последнее сообщение — 22 февраля 2011, 11:53; участников в обсуждении: 2.
DNK

DNK (статус: Студент), 21 февраля 2011, 17:01 [#1]:

Точно помню. Такой вопрос уже кто-то задавал раньше.
"Digital Networked Knight"

21 февраля 2011, 21:15: Статус вопроса изменён на решённый (изменил автор вопроса — eclipse): решен

eclipse

eclipse (статус: Посетитель), 22 февраля 2011, 10:11 [#2]:

Вот так примерно сделал:

Reg:= TRegistry.Create;
Reg.RootKey:= HKEY_CURRENT_USER;
Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Applets\Regedit', False);
s:= Reg.ReadString('LastKey');
s:= Copy(s, 0, Pos('\HKEY', s));
s:= s + Copy(suiListView1.Items.Item[i].SubItems.Strings[0], 2,
Length(suiListView1.Items.Item[i].SubItems.Strings[0])-2);
Reg.WriteString('LastKey', s);
ShellExecute(0, 'open', 'regedit.exe', NiL, NiL, SW_SHOWNORMAL);
Reg.CloseKey;
Reg.Free;
DNK

DNK (статус: Студент), 22 февраля 2011, 11:17 [#3]:

Я бы сначала TRegistry выгрузил, а уже потом ShellExecute.
"Digital Networked Knight"
eclipse

eclipse (статус: Посетитель), 22 февраля 2011, 11:53 [#4]:

Логично!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 12:00
Выполнено за 0.02 сек.