Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Trucos (https://www.clubdelphi.com/foros/forumdisplay.php?f=52)
-   -   Iniciar nuestra aplicación con Windows (https://www.clubdelphi.com/foros/showthread.php?t=80466)

Bicho 13-06-2006 13:07:34

Iniciar nuestra aplicación con Windows
 
Si queremos que nuestra aplicación se inicie cada vez que arranca Windows:

Código Delphi [-]
// 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

Código Delphi [-]
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;

[HTML]<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>[/HTML]

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.


La franja horaria es GMT +2. Ahora son las 12:53:16.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi