PDA

Ver la Versión Completa : Iniciar nuestra aplicación con Windows


Bicho
13-06-2006, 13:07:34
Si queremos que nuestra aplicación se inicie cada vez que arranca Windows:


// Hay que añadir al uses Registry
procedure RunForEver(pCaption, pPath : String);
var Registro :TRegistry;
begin
//pCaption es el caption del programa, y path la ruta completa donde se encuentra el .exe
Registro:=TRegistry.create;
Registro.RootKey := HKEY_LOCAL_MACHINE;
if Registro.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',FALSE) then
Registro.WriteString(pCaption, pPath);
Registro.Free;
end;


Si lo que queremos es que se inicie una única vez al arrancar windows


procedure RunOnce(pCaption, pPath : String);
var Registro :TRegistry;
begin
//pCaption es el caption del programa, y path la ruta completa donde se encuentra el .exe
Registro:=TRegistry.create;
Registro.RootKey := HKEY_LOCAL_MACHINE;
if Registro.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce',FALSE) then
Registro.WriteString(pCaption, pPath);
Registro.Free;
end;


<b>
Edito: Modificado para que al final en lugar de Destroy haga un Free,
lo puse para ver si estaban atentos y como siempre Dec está al loro! jeje.
No, es broma, me he colado, gracias por el apunte Dec.
</b>

dec
13-06-2006, 13:07:35
Hola,

¿Porqué llamas al método "Destroy" en lugar de al método "Free" cuando quieres liberar el objeto "Registry"? Piensa que "Free" termina llamando también a "Destroy", pero, antes se asegura de que dicho objeto esté correctamente asignado (<> nil).

Es una sugerencia, ¿eh? ;)

Citlalli
13-06-2006, 22:34:23
hola,

este procedure se debe colocar en el codigo del programa que se quiere que inicie con windows o aparte, esto es que si se mete al programa que se quiere iniciar entonces se estaria mandando llamar el procedure cada que corra el programa.