En mi programa comprobé una clave de registro al inicio y si de alguna manera no existe ejecuto el archivo reg ubicado en la carpeta de la aplicación con la ayuda de ShellExecute mando. ¿Cómo puedo evitar recibir mensajes de confimación cuando ejecuto este comando? ¿Hay alguna manera de hacerlo o, por razones de seguridad, no es posible?Cómo evitar un mensaje de confirmación al ejecutar un archivo .reg con el comando shellexecute
Respuesta
Utilice el modificador de línea de comandos/s. (Consulte http://support.microsoft.com/kb/82821)
¿Y cómo lo hago en Delphi? ¿Todavía uso ShellExecute? Se apreciaría un ejemplo –
ShellExecute funcionaría bien. Yo usaría 'reg import' en lugar de' regedit'. –
Es posible. Dos métodos son:
- % windir% \ system32 \ regedit.exe /s file.reg
- % windir% \ system32 \ reg.exe file.reg importación
Cualquiera de los dos silenciosamente importa file.reg en el registro.
probar esto para importar el archivo * .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;
También se puede tratar este enlace unitEXRegistry.pas
Esta unidad unitEXRegistry.pas tiene funciones muy útiles para exportar archivo de registro y también importar el silencio exportados * archivo .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;
Luego de importar puede utilizar (en silencio)
procedure TForm1.Button1Click(Sender: TObject);
var
texpr : TExRegistry;
begin
texpr:=TExRegistry.Create;
texpr.ImportRegFile('c:\myReg.reg');
texpr.Free;
end;
- 1. Cómo ejecutar el archivo .reg en Java
- 2. Añadiendo un archivo .reg al registro WIX
- 3. Cómo evitar el mensaje (Autor no verificado) al instalar un archivo de Firefox XPI
- 4. CQRS: ¿cuándo enviar un mensaje de confirmación?
- 5. ¿Cómo generar WiX XML desde un archivo .reg?
- 6. Cómo evitar el cuadro de mensaje emergente de error para el programa fallido (.exe) al ejecutar el archivo por lotes
- 7. ¿Cómo ejecutar el archivo dex en Android con el comando?
- 8. Confirmación de GitHub con mensaje extendido
- 9. Ejecutar un comando de shell cuando se agrega un archivo
- 10. Vim: cómo ejecutar un comando inmediatamente al iniciar vim?
- 11. ¿Muestra el comando completo al ejecutar un alias de Git?
- 12. Cómo capturar un mensaje de confirmación de git y ejecutar una acción
- 13. Ejecutar el comando CommandTFlush cuando se escribe un archivo nuevo
- 14. comando MAC para ejecutar un archivo .pkg en el terminal
- 15. Evitar instanciaof al verificar un tipo de mensaje
- 16. ejecutar un comando en cada archivo en un objetivo Phing
- 17. Problema al agregar valor de cadena al registro con el archivo .reg
- 18. Cómo evitar OutOfMemoryException al ejecutar Hadoop?
- 19. Cómo evitar que el archivo de proceso por lotes (.bat) se cierre al ejecutar comandos?
- 20. Ejecutar un comando sobre SSH con JSch
- 21. Cómo ejecutar un comando de shell desde un script php
- 22. Ejecutar un archivo con argumentos en el shell de Python
- 23. Mercurial Hook: cambie un mensaje de confirmación precompromiso
- 24. Al pasar 'abrir' a ShellExecute no se abre un archivo de palabra en una máquina específica
- 25. Cómo ejecutar un archivo con VisualBasicScript (.vbs)
- 26. WPF: Ejecutar un Enlace de comando en un campo de búsqueda al presionar el botón Entrar
- 27. ¿Cómo ejecutar un archivo .awk?
- 28. ¿Cómo ejecutar el comando con parámetros?
- 29. ¿Cambiar el mensaje de confirmación SVN retroactivamente?
- 30. ¿Cómo ejecutar un comando sin sudo?
No ejecute el archivo de registro. Use la API de registro directamente. –
Estoy seguro de que el consejo que me dio es valioso, pero ¿podría explicarme por qué no debería hacerlo de esta manera? Y una cosa más, el archivo de registro que quiero ejecutar contiene toneladas de entradas que fueron insertadas automáticamente por los componentes de la cuadrícula que tienen en cuenta los datos. Si trato de escribirlo de forma manual, ¿no significaría una pérdida de tiempo? –
Por ejemplo, ¿cómo va a lidiar con el redireccionador de registro en los sistemas de 64 bits? –