Asunto: Ejecutar aplicación al iniciar Windows con Delphi
Estoy realizando una aplicación en Delphi. Me gustaría poder poner una opción en la aplicación que permitiera (a elección del usuario) iniciarse, automáticamente cada vez que se inicie Windows (sistema operativo).
¿cómo tengo que hacerlo?
Publicado:
Vie Jun 01, 2007 9:17 am
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: Ejecutar aplicación al iniciar Windows con Delphi
Anuncios
varios escribió:
Estoy realizando una aplicación en Delphi. Me gustaría poder poner una opción en la aplicación que permitiera (a elección del usuario) iniciarse, automáticamente cada vez que se inicie Windows (sistema operativo).
¿cómo tengo que hacerlo?
Si quieres que el usuario pueda elegir la opción de iniciar o no, tendrás que poner en el formulario de configuración de tu aplicación un TCheckBox. Para guardar el valor de este campo puedes hacerlo en un fichero .INI. Con el siguiente código se guarda el valor (lo puedes colocar en el evento "OnClose" del formulario:
Código:
with tinifile.create (changefileext(paramstr(0), '.ini')) do
begin
try
WriteBool('Configuración', 'Ejecutar al iniciar Windows',
opEjecutarInicio.Checked);
finally
free;
end;
end;
en el evento "OnShow" ó en el evento "onCreate" del formulario habrá que poner el siguiente código (para cargar el valor guardado):
Código:
opEjecutarInicio.Checked := ReadBool('Configuración',
'Ejecutar al iniciar Windows', false);
Con lo anterior sólo conseguimos guardar el valor que haya elegido el usuario en el check de "Iniciar aplicación al iniciar Windows". Ahora añadiremos un procedimiento que escribirá en la clave "Run" la ruta y el nombre del ejecutable de nuestra aplicación, parar que se inicie cada vez que se inicie Windows:
Código:
procedure ejecutarInicio ();
var
reg : tregistry;
begin
Reg := TRegistry.Create(KEY_WRITE);
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Run', True) then
begin
try
Reg.WriteString('AjpdSoft Aviso Cambio IP Pública',
ExtractFilePath(ParamStr(0)) + ExtractFileName(ParamStr(0)));
except
Reg.CloseKey;
raise;
end;
end;
Reg.CloseKey;
finally
Reg.Free;
end;
end;
también necesitaremos un procedimiento para eliminar la clave del regedit si el usuario desmarca la opción de iniciar aplicación al iniciar Windows:
Código:
procedure quitarEjecutarInicio ();
var
reg: TRegistry;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', false);
reg.DeleteValue(Application.Title);
reg.CloseKey;
reg.Free;
end;
Por último, en el evento OnClose del formulario de configuración, si está a true el check de ejecución de aplicación al iniciar Windows, colocaremos el siguiente código (para guardar el valor en el registro):
Código:
...
if opIniciarWindows.Checked then
ejecutarInicio
else
quitarEjecutarInicio;
...
de esta forma, si el usuario desea que la aplicación se ejecute al iniciar Windows, marcará la opción correspondiente, al cerrar el formulario de configuración se escribirá el valor en la clave "Run" de "CurrentVersion" y la aplicación se iniciará al arrancar Windows.
Nota: en la cláusula "Uses" del formulario deberás poner "Registry" (unidad para trabajar con el regedit) y "IniFiles" (unidad para trabajar con ficheros .ini).
Publicado:
Vie Jun 01, 2007 9:53 am
apoclaxis Usuario
Registrado: Jun 04, 2007 Mensajes: 1
Asunto:
soy principiante y estoy desarrollando una aplicacion en lenguaje c y quisiera saber como iniciar la aplicacion cuando inicie el sistema windows
responder a: ectel_ip@yahoo.com.mx
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A