Форум программистов, компьютерный форум, киберфорум
Delphi: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 23.02.2017
Сообщений: 25

Импорт REG файла

10.01.2018, 08:54. Показов 4169. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, у меня задался вопрос, странное поведение в реестре. Проблема такая, не могу импортировать рег файл программно, я не первый раз
работаю с реестром, но эта проблема первый раз. Файл не импортируется в ветку HKEY_LOCAL_MACHINE\SOFTWARE а в остальные добавляются даже сюда HKEY_LOCAL_MACHINE\SYSTEM.
Если кликать по файлу то добавляется успешно, но с программой никак, пробовал вот эти

ShellExecute(0,nil,'regedit.exe',PC har('/s c:\regfile.reg'),nil,0);
и
WinExec('regedit.exe /s c:\regfile.reg',0);

В рег файле указана ветка HKEY_LOCAL_MACHINE\SOFTWARE если поменять SOFTWARE на другие разделы то добавляется.

Если сделать reg import c:\regfile.reg или regedit.exe /s c:\regfile.reg через обычной командной стракой (cmd) то работает нормально, и через команду выполнить.

Еще пробовал через батник, создал файла cmd.bat и записал строку regedit.exe /s c:\regfile.reg сохраняешь и кликаешь, успех!! а если
запустить этот батник так ShellExecute(0,nil,'c:\cmd.bat',nil ,nil,0); полный тормоз.
Даже пробовал так, создал 2 батника чтоб первый запустил второго, а второй импорт файла, запускаю первый батник в программе, и полный тормоз.

Думал может у моей проги нет доступа к этому разделу и отключил полностью учетку UAC и даже в программе включил привилегию разработчика EnableDebugPrivilege(True);
не пашет, ребята помогите разобраться, может кто то уже столкнулся с такой проблемой.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.01.2018, 08:54
Ответы с готовыми решениями:

Занесение данных в реестр из reg-файла
Всем привет Для занесения данных в реестр с .reg файла я использую следующий код: procedure TForm1.Button1Click(Sender: TObject); ...

На основе кода REG-файла написать код BAT-файла
Всем Доброго Дня, попрошу вас меня понять) мне необходимо сделать батник из .reg файла ...

Fatal error: in D:\OSPanel\domains\localhost\reg\reg.php on line 31
Очень долго искал информацию как это исправить : $user = 'root'; $password = '123456789'; $db = 'tasting'; $host = '127.0.0.1'; ...

10
0 / 0 / 0
Регистрация: 23.02.2017
Сообщений: 25
11.01.2018, 23:44  [ТС]
Если полный бред то я бы не писал сюда. Обошелся по другому, записал все бинарные данные в саму программу и оттуда записываю на прямую в реестр. Программа записывает нормально а вот импортировать из файла в каталог SOFTWARE не хочет.
0
Джоуи
 Аватар для Joey
1083 / 645 / 240
Регистрация: 05.05.2015
Сообщений: 3,559
Записей в блоге: 2
14.01.2018, 12:02
erlan86, у Вас, наверное, Delphi 7, так?
0
0 / 0 / 0
Регистрация: 23.02.2017
Сообщений: 25
14.01.2018, 12:10  [ТС]
Нет, XE7
0
Джоуи
 Аватар для Joey
1083 / 645 / 240
Регистрация: 05.05.2015
Сообщений: 3,559
Записей в блоге: 2
14.01.2018, 14:37
erlan86, ОС 64-битная? А Delphi какой разрядности, x86?
Ваша проблема может быть связана с этим, жду ответа
0
0 / 0 / 0
Регистрация: 23.02.2017
Сообщений: 25
14.01.2018, 15:19  [ТС]
Да Win 64 Delphi 86
0
Джоуи
 Аватар для Joey
1083 / 645 / 240
Регистрация: 05.05.2015
Сообщений: 3,559
Записей в блоге: 2
14.01.2018, 18:37
erlan86, прочитайте вот это Опять подводные грабли или Delphi 7 шутит?
Там я подробно описал проблему взаимодействия 32-битных приложений с 64-битной виндой.
0
0 / 0 / 0
Регистрация: 23.02.2017
Сообщений: 25
14.01.2018, 20:26  [ТС]
Что Вы хотели сказать, Вы имеете введу что импорт рег файла возможно только на 32 разрядной системе, если да то я и на 32-м Винде пробовал, не пашет. Ваше описание может имеет отношение к записи данных а не импорт файла, для примера я пробовал на Дельфи 7 сделать запись в ветки HKEY_LOCAL_MACHINE\SOFTWARE, он вообще не пишет ничего, а на XE7 пишет куда угодно, только вот кроме импорта файла в ветку HKEY_LOCAL_MACHINE\SOFTWARE, проблему так и не нашел, решил проблему записав все данные в саму программу и оттуда записать в реестр.
0
Джоуи
 Аватар для Joey
1083 / 645 / 240
Регистрация: 05.05.2015
Сообщений: 3,559
Записей в блоге: 2
14.01.2018, 23:51
Лучший ответ Сообщение было отмечено Joey как решение

Решение

erlan86, не знаю, как точно Вы запускаете рег-файл, но вот рабочий код, который я только что проверил (если Вам надо именно через ShellExecute):
Delphi
1
ShellExecute(0, nil, 'C:\test.reg', nil, nil, SW_SHOWNORMAL);
REG-файл
Code
1
2
3
Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SOFTWARE\test_01]

На x86 винде код сработал и добавил раздел HKLM\SOFTWARE\test_01.
НО, на x64 винде код добавил этот же подраздел в папку HKLM\SOFTWARE\Wow6432Node, как и должен, о чем я Вам и говорил
0
0 / 0 / 0
Регистрация: 23.02.2017
Сообщений: 25
15.01.2018, 00:35  [ТС]
Ничего себе, Ты был прав, мои ранее сделанные попытки оказались в разделе HKLM\SOFTWARE\Wow6432Node. Значить программу надо создать как 64 битный. Отсюда появляется один вопрос, как тогда программы узнают что моя прога 32 битная. Когда добавляешь через батник то нормально, а если запустить этот батник через программу то сюда HKLM\SOFTWARE\Wow6432Node. Значить есть функции которые могут узнавать кто запускает файл и разрядность.
0
Джоуи
 Аватар для Joey
1083 / 645 / 240
Регистрация: 05.05.2015
Сообщений: 3,559
Записей в блоге: 2
15.01.2018, 01:31
Цитата Сообщение от erlan86 Посмотреть сообщение
Значить есть функции которые могут узнавать кто запускает файл
Система сама контролирует это. Подробнее можно почитать по запросу WoW64, например, в вике WoW64 (Windows 32-bit on Windows 64-bit) https://en.wikipedia.org/wiki/WoW64
Таковым способом был сделан почти безболезненный переход на 64-битную разрядность, с возможностью (относительной) бесконфликтно переходить на нее со своими 32-битными программами, пока софтоделы не очнулись.

Вот разделы, затрагиваемые данной проблемой https://msdn.microsoft.com/en-... 85%29.aspx
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.01.2018, 01:31
Помогаю со студенческими работами здесь

Чтение reg файла
Каким образом можно сделать чтение файла HKEY_CURRENT_USER реестр а чтобы работало при нажатии на button

Создание .reg файла
Имеется программа, настройки которой хранятся в реестре по пути HKEY_CURRENT_USER\\Software\\MyProgram В самой папке MyProgram записано...

Загрузка reg-файла
Как загрузить в реестр reg-файл через пакетный сценарий, чтобы при этом не выводилось этих глупых сообщений?

Перенести информацию с .reg файла в C#
В общем, нужно перевести с .reg файла на c#, но там используется hex и я не знаю, что делать. Windows Registry Editor Version 5.00 ...

Написание reg файла для смены TTL
Знаю, что изменить TTL довольно просто. Но хотелось бы сделать reg-файл для внесения в реестр изменений. Опыта в этом нет, и не очень понял...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru