2016-10-11 10 views
1

Мне нужно запустить несколько файлов реестра через Inno Setup в коде. Я не могу использовать раздел [Registry], так как это стандартный установочный комплект, который должен выбрать создаваемые и запускаемые файлы .reg.Импорт файлов реестра .reg молча

Exec('regedit.exe', 'C:\Support\MyReg.reg', '', SW_HIDE, ewWaitUntilTerminated, ResultCode) 

Я хочу запустить это тихо, поэтому я попробовал следующее.

Exec('regedit.exe', 'C:\Support\MyReg.reg /s', '', SW_HIDE, ewWaitUntilTerminated, ResultCode) 

Но это не сработает. Может ли кто-нибудь сказать мне, что мне здесь не хватает?

+1

Его REGEDIT. EXE не REGISTRY.EXE ... –

ответ

1

/s должен прийти перед путевым:

Exec('regedit.exe', '/s C:\Support\MyReg.reg', '', SW_HIDE, ewWaitUntilTerminated, Code); 

Хотя я предлагаю вам лучше использовать инструмент реестра из командной строки, то reg.exe:

Exec('reg.exe', 'import C:\Support\Banners.reg', '', SW_HIDE, ewWaitUntilTerminated, Code); 
+0

Спасибо Мартин. Любая конкретная причина использования reg.exe? – Newbee

+0

Это инструмент командной строки, предназначенный для автоматизации, в отличие от GUI 'regedit.exe'. Таким образом, вы можете, например, перенаправить свой вывод в файл для захвата ошибок. И он не будет висеть на вас, как, например, 'regedit.exe', на случай, если вы испортите аргументы :) –