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
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.