在我的程序中,我在启动时检查注册表项,如果它不存在,我使用ShellExecute帮助执行位于应用程序文件夹中的reg文件命令。如何避免在执行此命令时获取配置消息。有没有办法做到这一点,或根据安全原因,这是不可能的?如何避免使用shellexecute命令执行.reg文件时的确认消息
5
A
回答
12
使用/ s命令行开关。 (见http://support.microsoft.com/kb/82821)
+0
我该如何在Delphi中做到这一点?我仍然使用ShellExecute?一个例子,将不胜感激 – 2012-01-16 08:30:08
+4
ShellExecute会正常工作。我自己我会使用'reg import'而不是'regedit'。 – 2012-01-16 09:06:33
11
这是可能的。有两种方法:
- %WINDIR%\ SYSTEM32 \ REGEDIT.EXE /s的 file.reg
- %WINDIR%\ SYSTEM32 \ REG.EXE进口file.reg
要么会静静地将file.reg导入到注册表中。
3
尝试一下本作导入* .reg文件,
procedure ImportRegistry;
var
strProgram :String ;
strCommand :String ;
fileOne :String ;
begin
fileOne:=ExtractFilePath(Application.ExeName)+ 'my_Resources\Default.reg';
strProgram := 'REGEDIT' ;
strProgram := strProgram + #0 ;
strCommand := '/SC /C ' + ExtractShortPathName(fileOne) ;
strCommand := strCommand + #0 ;
if ShellExecute(0,nil,@strProgram[1],@strCommand[1],nil,SW_HIDE) <= 32 then
begin
ShowMessage(SysErrorMessage(GetLastError)) ; //if there is any error in importing
end;
end;
您也可以尝试此链接unitEXRegistry.pas
这unitEXRegistry.pas单元具有非常有用的功能,导出注册表文件,然后导入也默默地出口* .reg文件
procedure exportREgis;
var
texpr : TExRegistry;
begin
texpr:=TExRegistry.Create;
texpr.RootKey:=HKEY_CURRENT_USER;
texpr.OpenKeyReadOnly('\MyKey');
texpr.ExportKey (ExtractFilePath(Application.ExeName)+'ExportedReg.reg');
texpr.Free;
end;
然后导入就可以使用(默默)
procedure TForm1.Button1Click(Sender: TObject);
var
texpr : TExRegistry;
begin
texpr:=TExRegistry.Create;
texpr.ImportRegFile('c:\myReg.reg');
texpr.Free;
end;
相关问题
- 1. 如何避免系统命令执行成功的消息?
- 2. 如何避免执行vc项目文件时的命令窗口
- 3. 使用Golang安全地执行命令(避免远程执行)
- 4. 如何避免Firefox确认信息?
- 5. 如何避免linux中的linux命令消息
- 6. 如何在使用Ruby执行命令行时逃避竖线?
- 7. YUI DataTable - 如何避免'停止运行这个脚本?'确认消息
- 8. PowerShell:执行远程命令并写入StdError。如何避免错误信息?
- 9. 执行* .reg文件
- 10. 如何在使用HTTPS时避免IE7中的安全消息?
- 11. 如何避免在外壳脚本执行命令错误
- 12. MVVM显示确认消息框,然后执行附加到按钮的命令
- 13. 如何通过使用临时避免令,文件排序
- 14. 批处理文件与reg add命令从网络执行
- 15. 使用命令行执行.sql文件
- 16. 当shellexecute命令在MFC中执行批处理文件时显示进度条
- 17. 如何避免使用win + r运行命令后关闭cmd?
- 18. 避免表单重新提交后显示确认消息?
- 19. 如何避免在终端中运行python文件时需要命令'python'?
- 20. 如何使用Java确认RabbitMQ消息?
- 21. 如何避免IE警告消息消费使用jQuery
- 22. 如何避免vim中的累积文件类型命令?
- 23. 执行根命令没有根用户避免密码提示
- 24. Jenkins如何从git commit消息执行特定的shell命令
- 25. 执行Segmentation时避免MomoryLeak
- 26. reg命令使用指数
- 27. 使用用户确认执行异步命令
- 28. 当从Java中的ProcessBuilder执行时,Windows REG命令不工作
- 29. 执行.reg文件[c#]
- 30. 如何避免PromptChoice重试消息
不要执行reg文件。直接使用注册表API。 – 2012-01-16 08:13:35
我相信你给出的建议很有价值,但请你解释为什么我不应该这样做?还有一件事,我想要执行的注册表文件包含大量由数据感知网格组件自动插入的条目。如果我尝试手动编写它不会浪费时间吗? – 2012-01-16 08:24:50
例如,你将如何处理64位系统上的注册表重定向器? – 2012-01-16 08:31:23