Concuerdo con lo que te dijo Delphi.com.ar y para aumentar un poco la respuesta... Puedes anotar tu programa en el inicio del registro de
Windows XP (ojo: sólo Windows XP, debes averiguar en Windows Vista y 7)
Aquí tengo un pequeño ejemplo que lo vi hace tiempo en el clubDelphi y que lo tengo guardado en mi carpetita de "Ejemplos Delphi"
(uno puede necesitar estos ejemplos algún día )
Cita:
Primero coloca un CheckBox en tu formulario, luego crea un procedimiento para escribir en el registro de Windows Xp.
Luego agrega "Registry" en las Uses de la unidad
|
Y escribes el código
Código Delphi
[-]procedure TForm1.Regedit(run:byte; Nombre:string);
var
Registro:TRegistry;
begin
Registro:=TRegistry.create;
Registro.RootKey:=HKEY_LOCAL_MACHINE;
case run of
1: if Registro.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run\',FALSE) then
Registro.WriteString(Nombre, ParamStr(0));
0: if Registro.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run\',FALSE) then
Registro.DeleteValue(Nombre);
end;
Registro.Destroy;
end;
Cita:
Después en el CheckBox realizas la llamada al procedimiento:
|
Código Delphi
[-]procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked then
Regedit(1, 'NombrePrograma')
else
Regedit(0, 'NombrePrograma');
end;
Cita:
Donde el valor de "1" sirve para escribir en el registro el autoinicio de tu programa al encender Windows Xp.
Y el valor "0" borra el registro añadido por el programa (desactiva)
|
Cita:
Si quieres hacer un programa donde el Usuario controle el autoinicio de tu programa (active y desactive) puedes agregar otro procedimiento para que el programa (checkBox) "averigüe" si ya está escrito el autoinicio en el Registro de Windows Xp.
Con este procedimiento hará que tu checkBox esté marcado si ya existe el registro, si no el checkBox estará desmarcado:
|
Código Delphi
[-]procedure TForm1.AveriguarInicio(nombre:string);
var
Registro : TRegistry;
begin
Registro:=TRegistry.create;
Registro.RootKey:=HKEY_LOCAL_MACHINE;
Registro.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',true);
if Registro.ValueExists(nombre)= true then
CheckBox1.Checked:= true
else
CheckBox1.Checked:= false;
Registro.Destroy;
end;
Cita:
Y en el FormCreate haces la llamada al procedimiento:
|
Código Delphi
[-]procedure TForm1.FormCreate(Sender: TObject);
begin
AveriguarInicio('NombrePrograma');
end;
Creo que me salió muy larga mi respuesta
¡Seguro que nadie lo leerá!
Saludos!