BlueGEEK Journal

Accueil > Manip’s > Delphi > Composants / Librairies > Installer un Paquet de composants tout faits > Lancer automatiquement un programme au démarrage de Windows

Lancer automatiquement un programme au démarrage de Windows

mercredi 25 juin 2008, par bluegyn_spip

- Place ou retire une clef dans la branche

  • Software\Microsoft\Windows\CurrentVersion\Run

- Du registre de Windows.

unit jc_REG;



interface



uses

registry {acces au registre},

 windows {constantes symboliques du registre},

 dialogs {showMessage} ,

 SysUtils {AnsiQuoted };



// === AUTO DEMARRAGE D'UN PROGRAMME ===

procedure Set_RunKey( maClef, maValeur:string );

procedure Remove_RunKey(maClef:string);



implementation



///////////////////////////////////////////////////////////////

// AUTO-DEMARRAGE D'UN PROGRAMME

// Place le programme maValeur dans l'entrée maClef du menu de démarrage

// Set_RunKey ( maClef, PROG );

// EXEMPLE :

// Set_RunKey ( 'timenu', paramStr(0)));

///////////////////////////////////////////////////////////////

procedure Set_RunKey( maClef, maValeur:string );

BEGIN

// Crée un accès au registre

With TRegistry.Create do Begin

try

        // Définit la clef Racine

 RootKey := HKEY_LOCAL_MACHINE;

 // Pointe ou crée la section RUN

 openKey('Software\Microsoft\Windows\CurrentVersion\Run',true);



 // ---- Ecrit le programme "entre guillemets" dans sa maClef ----

 WriteString( maClef, AnsiQuotedStr(maValeur,#34) );

 // -------------------------------------------

finally;

 Free;

end; // try

End;

END;





procedure Remove_RunKey(maClef:string);



// maValeur est inutile puisque maClef est détruite

var

 Reg: TRegistry;

 RubriqueRun : string;   // Chaine du registre ou se trouve la clef

begin

 Reg := TRegistry.Create;

 Reg.RootKey := HKEY_LOCAL_MACHINE;

 RubriqueRun := 'Software\Microsoft\Windows\CurrentVersion\Run';

 // teste si la clef existe ...

 // ...Si existe => tente de supprimer l'entrée pour Rubrique

 if not Reg.OpenKey( RubriqueRun, False) then

   ShowMessage('Clé non trouvée')

 else begin

         // --------------------------------------

   if Reg.DeleteValue(maClef) then

         // --------------------------------------

     ShowMessage('Clé effacée: ' + maClef )

   else

     ShowMessage('Cle Non Trouvée: ' + maClef );

 end;



 Reg.CloseKey;

 Reg.Free;

end;

//---





end.