Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] Вопрос по библиотеке JEDI (модуль JclRegistry )

Ответить
Настройки темы
Delphi - [решено] Вопрос по библиотеке JEDI (модуль JclRegistry )

Аватара для Painkiller

Ветеран


Автор проектов


Сообщения: 1158
Благодарности: 382

Профиль | Отправить PM | Цитировать


Изменения
Автор: Painkiller
Дата: 26-02-2016
Привет всем ! Столкнулся с такой проблемой . Нужно удалить ключ реестра со всеми подключами.
Код: Выделить весь код
HKEY_LOCAL_MACHINE\Software\Microsoft\WIMMount
Проблема на x64 системе , а у меня x32 приложения . Соответственно моя программа ищет этот в ключе Wow6432Node. Решения я нашёл не используя библиотеку JEDI так:
Скрытый текст

Код: Выделить весь код
procedure TForm1.Button1Click(Sender: TObject);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create();
if IsWindows64=true then begin
Reg.Access := $100 or KEY_ALL_ACCESS;
end;
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.KeyExists('\Software\Microsoft\WIMMount') then
Reg.DeleteKey('Software\Microsoft\WIMMount');
finally
Reg.Free;
end;end;

Всё работает и удаляется . Но хотелось бы обойтись средствами библиотеки JEDI
Скрытый текст

Набросал код :
Код: Выделить весь код
procedure TForm1.Button2Click(Sender: TObject);
var
RootKey: HKEY;
PathKEY:String;
 begin
if IsWindows64=true then begin
RegSetWOW64AccessMode(ra64Key);
end;
RootKey := HKEY_LOCAL_MACHINE;
PathKEY:='Software\Microsoft\WIMMount';
if not RegKeyExists (RootKey,PathKEY) then begin
Memo1.Lines.Add('- [ Ошибка ] Ключ не найден')
end else begin
Memo1.Lines.Add('[ ОК ] Ключ найден');
if not RegDeleteKeyTree (RootKey,PathKEY)then   begin
Memo1.Lines.Add('[ Ошибка ] Ключ не удалён')
end else begin
Memo1.Lines.Add('[ ОК ] Ключ удалён');
end;
end;
end;
end.

Ключ находит, но не удаляет =((( Что нужно ещё добавить ??? Помогите, плиз!

-------
http://wiki.oszone.net/images/0/03/UserbarAAA4.gif


UpdatePack 7 для интеграции обновлений в образ Windows 7 SP1 [X86\64]

UpdatePack 8.1 для интеграции обновлений в образ Windows 8.1 [X86\64]

UpdatePack 10 для интеграции обновлений в образ Windows 10 [X86\64]


Отправлено: 23:47, 24-02-2016

 


Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для opel431

Ветеран


Contributor


Сообщения: 1803
Благодарности: 714

Профиль | Отправить PM | Цитировать


Я подправил код, попробуйте!

-------
Хвала тому, кто встав среди камней, уча другого, сам будет умней.


Отправлено: 02:26, 27-02-2016 | #22


Аватара для Painkiller

Ветеран


Автор проектов


Сообщения: 1158
Благодарности: 382

Профиль | Отправить PM | Цитировать


opel431, Тоже самое , ключ не найден . Даже попросил знакомого у себя на компе проверить на x64 редакции свежо-установленной и тоже самое как у меня . На x86 проблем нет . Может дело в Embarcadero RAD Studio XE6? Хотя ...

-------
http://wiki.oszone.net/images/0/03/UserbarAAA4.gif


UpdatePack 7 для интеграции обновлений в образ Windows 7 SP1 [X86\64]

UpdatePack 8.1 для интеграции обновлений в образ Windows 8.1 [X86\64]

UpdatePack 10 для интеграции обновлений в образ Windows 10 [X86\64]


Отправлено: 02:35, 27-02-2016 | #23


Аватара для opel431

Ветеран


Contributor


Сообщения: 1803
Благодарности: 714

Профиль | Отправить PM | Цитировать


Цитата Painkiller:
Тоже самое , ключ не найден »
Вы уверены? Ведь из приложения на платформе x64 следует смотреть в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WIMMount, а на платформе x86 в HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\WIMMount
Что притихли, ответ ждать или на потом?

-------
Хвала тому, кто встав среди камней, уча другого, сам будет умней.


Последний раз редактировалось opel431, 27-02-2016 в 02:48.


Отправлено: 02:40, 27-02-2016 | #24


Аватара для Painkiller

Ветеран


Автор проектов


Сообщения: 1158
Благодарности: 382

Профиль | Отправить PM | Цитировать


Цитата opel431:
Вы уверены? Ведь в приложении на платформе x64 следует смотреть в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WIMMount, а на платформе x86 в HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\WIMMount »
Уверен. Я на x64 смотрю ветку HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WIMMount. Она мне и нужна . На x86 таже ветка HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WIMMount удаляется без проблем
Сюда мы не смотрим HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\WIMMount

Да ладно , не работает , дык не работает . Буду по старинке Всё равно признателен, что откликнулись

-------
http://wiki.oszone.net/images/0/03/UserbarAAA4.gif


UpdatePack 7 для интеграции обновлений в образ Windows 7 SP1 [X86\64]

UpdatePack 8.1 для интеграции обновлений в образ Windows 8.1 [X86\64]

UpdatePack 10 для интеграции обновлений в образ Windows 10 [X86\64]


Отправлено: 02:48, 27-02-2016 | #25


Аватара для opel431

Ветеран


Contributor


Сообщения: 1803
Благодарности: 714

Профиль | Отправить PM | Цитировать


Цитата Painkiller:
Сюда мы не смотрим HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\WIMMount »
Сюда мы не смотрим, если приложение на платформе x86 работает в системе x86! Если это приложение работает в системе x64, то ключи (создает, ищет, удаляет и....) в Wow6432Node

-------
Хвала тому, кто встав среди камней, уча другого, сам будет умней.


Отправлено: 02:53, 27-02-2016 | #26


Аватара для Painkiller

Ветеран


Автор проектов


Сообщения: 1158
Благодарности: 382

Профиль | Отправить PM | Цитировать


Цитата opel431:
Если это приложение работает в системе x64, то ключи (создает, ищет, удаляет и....) в Wow6432Node »
Я это понимаю . Я пытаюсь добиться, чтобы приложение 32 x работая в системе x64, удаляла ключи из HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WIMMount, а не HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\WIMMount
По старинке с помощью этого кода всё работает :
Код: Выделить весь код
procedure TForm1.Button1Click(Sender: TObject);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create();
if IsWindows64=true then begin
Reg.Access := $100 or KEY_ALL_ACCESS;
end;
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.KeyExists('\Software\Microsoft\WIMMount') then
Reg.DeleteKey('Software\Microsoft\WIMMount');
finally
Reg.Free;
end;end;

-------
http://wiki.oszone.net/images/0/03/UserbarAAA4.gif


UpdatePack 7 для интеграции обновлений в образ Windows 7 SP1 [X86\64]

UpdatePack 8.1 для интеграции обновлений в образ Windows 8.1 [X86\64]

UpdatePack 10 для интеграции обновлений в образ Windows 10 [X86\64]


Отправлено: 02:56, 27-02-2016 | #27


Аватара для opel431

Ветеран


Contributor


Сообщения: 1803
Благодарности: 714

Профиль | Отправить PM | Цитировать


Цитата Painkiller:
Я пытаюсь добиться, чтобы приложение 32 x работая в системе x64, удаляла ключи из HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WIMMount, а не HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\WIMMount »
Тогда попробуйте отключать перенаправление - RegDisableReflectionKey. В одном из приложений (tweaks) применял, нужно покопаться, или посмотрите в MSDN.

-------
Хвала тому, кто встав среди камней, уча другого, сам будет умней.


Последний раз редактировалось opel431, 27-02-2016 в 03:44.

Это сообщение посчитали полезным следующие участники:

Отправлено: 03:38, 27-02-2016 | #28


Аватара для Painkiller

Ветеран


Автор проектов


Сообщения: 1158
Благодарности: 382

Профиль | Отправить PM | Цитировать


Цитата opel431:
Тогда нужно отключать перенаправление - RegDisableReflectionKey. В одном из приложений (tweaks) применял, нужно покопаться, или посмотрите в MSDN. »
А разве RegSetWOW64AccessMode не переключает направления ?

-------
http://wiki.oszone.net/images/0/03/UserbarAAA4.gif


UpdatePack 7 для интеграции обновлений в образ Windows 7 SP1 [X86\64]

UpdatePack 8.1 для интеграции обновлений в образ Windows 8.1 [X86\64]

UpdatePack 10 для интеграции обновлений в образ Windows 10 [X86\64]


Отправлено: 03:44, 27-02-2016 | #29


Аватара для opel431

Ветеран


Contributor


Сообщения: 1803
Благодарности: 714

Профиль | Отправить PM | Цитировать


Цитата Painkiller:
А разве RegSetWOW64AccessMode не переключает направления ? »
А вот не работает код ....хотя ранее я его и применял! Буду смотреть в чем дело.

-------
Хвала тому, кто встав среди камней, уча другого, сам будет умней.


Последний раз редактировалось opel431, 27-02-2016 в 03:54.


Отправлено: 03:46, 27-02-2016 | #30



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] Вопрос по библиотеке JEDI (модуль JclRegistry )

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2008 - Вопрос по программе для открытия рисунков по умолчанию flower Windows Server 2008/2008 R2 4 18-10-2010 17:22
Прочее - вопрос по загрузке образов cd/dvd дисков по сети andi_filon Общий по Linux 4 21-08-2009 14:48
Вопрос по платформам обработки данных и еще по всяким непонятным словам :) koresaram Хочу все знать 8 19-02-2009 18:26
Jedi Concentrate (Концентрируемся на окнах) yurfed Программное обеспечение Windows 0 22-12-2007 10:05
Star Wars: Jedi Knight 2 Mihan Игры 8 03-11-2003 11:50




 
Переход