Estoy creando un programa en C++, que quiero poder tener la opción de permitir que los usuarios se inicien automáticamente en Windows. Entonces, cuando un usuario inicia su computadora, Windows iniciará automáticamente este programa. He leído cosas sobre cómo modificar el registro o ponerlo en la carpeta de inicio, pero ¿cuál sería la mejor forma "limpia" de hacerlo?Cómo crear un programa de arranque automático C++
Respuesta
La carpeta de inicio está lo suficientemente limpia.
Ofrece al usuario la posibilidad de eliminarlo si es necesario.
Tenga en cuenta que si haga algo como esto, en lugar de ejecutar un servicio, que su aplicación pueda ser ejecutada por más de un usuario a la vez. – Eclipse
Sí, realmente odio que algo comience automáticamente y tengo que buscar en el registro para evitar que vuelva a funcionar. Algunos desarrolladores actúan como si fueran dueños de su máquina. –
Dependiendo de si está ejecutando una instalación para todos los usuarios o por usuario, colóquela en la carpeta de Inicio de Todos los usuarios o en la carpeta de inicio por usuario. La carpeta de inicio que ve en el menú es la fusión de ambos, pero los usuarios que no son administradores no pueden eliminar las entradas provenientes de la parte Todos los usuarios.
En realidad, no tiene que hacer nada por esto. Los usuarios pueden copiar su acceso directo normal al menú de Inicio ellos mismos. Por lo tanto, cualquier programa puede ser un programa de inicio automático. No necesita ser C++ en absoluto.
Hay muchas maneras de iniciar automáticamente una aplicación, pero la más fácil, más común y la OMI mejores son:
- poner un acceso directo en la carpeta de inicio automático
- Añadir una entrada de inicio automático para el registro (Software \ Microsoft \ Windows \ CurrentVersion \ Run)
El resultado final es el mismo para ambos. Creo que la forma de registro se ejecuta antes en el proceso de inicio de sesión que en el inicio, pero no estoy seguro. No hace ninguna diferencia para la mayoría de los casos de todos modos. Prefiero el registro, pero ese es el gusto personal. Puede crear y eliminar la clave de registro o el acceso directo programáticamente en su aplicación.
Con ambas opciones puede usar una configuración para todos los usuarios (carpeta de inicio de todos los usuarios o clave HKLM en el registro) o específica del usuario (carpeta de inicio de usuario o clave HKCR).
En general, es mejor utilizar las opciones por usuario, porque puede tener ciertos privilegios de escritura en esas áreas; y cada usuario en la computadora puede tener su propia configuración.
Puede registrarlo como un servicio de Windows. Puede usar "Qt Solutions" para realizar fácilmente una aplicación como servicio de Windows.
Un servicio de Windows no es en modo alguno lo mismo que el OP. Intente publicar respuestas que de hecho se apliquen al tema en cuestión. –
Puede crear un archivo por lotes para implementar la aplicación como un servicio o anular su implementación. – Qubeuc
Con este código se puede hacer
procedure TForm1.Button1Click(Sender: TObject);
var
Reg:TRegistry;
begin
Reg := TRegistry.Create;
try
Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',True);
Reg.WriteString('Program name',ParamStr(0));
finally
Reg.Free;
end;
end;
o esto:
using Microsoft.Win32;
private void AddStartUpKey(string _name, string _path) {
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Micros oft\Windows\CurrentVersion\Run", true);
key.SetValue(_name, _path);
}
private void RemoveStartUpKey(string _name) {
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Micros oft\Windows\CurrentVersion\Run", true);
key.DeleteValue(_name, false);
}
En lugar de solo publicar un bloque de código, * explique * por qué este código resuelve el problema planteado. Sin una explicación, esta no es una respuesta. –
Además, ninguno de estos son C++. – immibis
- 1. Primeros pasos para crear un programa de arranque C simple
- 2. ¿Cómo crear programas GUI de arranque?
- 3. Arranque automático de granos de un módulo diferente
- 4. cómo crear un contestador automático para android
- 5. crear archivos XML de programa en C++
- 6. Cómo forzar a un programa de arranque de WiX a descargar un paquete de MSI?
- 7. ¿Cómo crear un programa Java conectable?
- 8. Cómo crear un programa ejecutable desde AppleScript
- 9. ¿Cómo depurar un cargador de arranque?
- 10. Cómo depurar un programa C
- 11. ¿Qué significa "crear" un programa
- 12. Crear un programa de lista de contactos
- 13. ¿Cómo escribiría un gestor de arranque para cargar un kernel c?
- 14. ¿Cómo creo programáticamente un CD de arranque?
- 15. LLVM enlace automático de C++
- 16. ¿Cómo ejecutar un programa Java desde C#?
- 17. Cómo estructurar un programa C efectivamente
- 18. ¿Cómo ejecutar un programa C en Ubuntu?
- 19. Aplicación de arranque automático de Android después de la instalación completa
- 20. Ejecutar programa desde dentro de un programa C
- 21. Iniciando un programa C++ oculto
- 22. ¿Cómo crear un programa de instalación independiente y autónomo escrito en C#?
- 23. "Automático" frente a "Automático (Inicio diferido)"
- 24. C++ automático no nombra a un tipo
- 25. ¿Cómo crear un proyecto C?
- 26. ¿Cómo crear un usuario de Linux usando C/C++?
- 27. C# Class Incremento automático ID
- 28. Eclipse cdt/gdb punto de interrupción automático en la entrada del programa - ¿cómo deshabilitar?
- 29. Crear un servicio de Windows para abrir un programa- Delphi
- 30. ¿Cómo finalizar un programa en C++ después de un error?
Consulte este enlace http://ask-leo.com/auto_start_how_do_i_run_a_program_automatically_when_windows_starts.html – Vinay