在我的程序中,我在启动时检查注册表项,如果它不存在,我使用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. 如何避免Firefox确认信息?
- 4. YUI DataTable - 如何避免'停止运行这个脚本?'确认消息
- 5. 如何在使用HTTPS时避免IE7中的安全消息?
- 6. MVVM显示确认消息框,然后执行附加到按钮的命令
- 7. 批处理文件与reg add命令从网络执行
- 8. 使用命令行执行.sql文件
- 9. 当shellexecute命令在MFC中执行批处理文件时显示进度条
- 10. 如何避免在终端中运行python文件时需要命令'python'?
- 11. 如何使用Java确认RabbitMQ消息?
- 12. 如何避免IE警告消息消费使用jQuery
- 13. 执行根命令没有根用户避免密码提示
- 14. 执行Segmentation时避免MomoryLeak
- 15. 如何使用NO脚本文件从命令行执行sql命令?
- 16. JSF t:消息 - 如何避免表?
- 17. 如何在Android中避免此消息
- 18. 如何避免错误消息窗口
- 19. 如何避免PromptChoice重试消息
- 20. 如何避免级联错误消息
- 21. 如何避免退出确认?
- 22. 如何避免表单在跨度onclick事件中提交时发出的确认消息?
- 23. 如何执行对于UN重新传递确认JMS消息
- 24. 执行shell命令用正确的参数逃避
- 25. 如何执行set-GPPermissions命令没有确认提示
- 26. 如何避免在do.call中使用rbind时重命名行?
- 27. 避免使用.c_str命令使用临时字符串?
- 28. qsub命令如何避免使用特定的计算机
- 29. 如何使Mac的可执行文件运行java命令
- 30. 避免Zends错误消息
不要执行reg文件。直接使用注册表API。 – 2012-01-16 08:13:35
我相信你给出的建议很有价值,但请你解释为什么我不应该这样做?还有一件事,我想要执行的注册表文件包含大量由数据感知网格组件自动插入的条目。如果我尝试手动编写它不会浪费时间吗? – 2012-01-16 08:24:50
例如,你将如何处理64位系统上的注册表重定向器? – 2012-01-16 08:31:23