IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Créer un raccourci dans Démarrage


Sujet :

Langage Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 8
    Points : 2
    Points
    2
    Par défaut Créer un raccourci dans Démarrage
    Bonjour, Voilà mon probléme. Je voudrais que mon programme puisse créer lui même un raccourci dans le dossier "Démarrage" du menu démarrer afin que ce même programme puisse être éxécuter au démarrage de l'ordi. Je voudrais en plus qu'il y ai un paramétre sur ce raccourci que le programme récupérera lorsqu'il va se lancer ( de maniére à savoir si le programme a été éxécuter par l'utilisateur ou par le démarrage de l'ordi).
    Je ne souhaite pas passer par une modification de la base de registre ni par des logiciels d'installation.

    Merci d'avance pour vos réponse.

  2. #2
    Membre éclairé
    Avatar de denokan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2002
    Messages : 434
    Points : 746
    Points
    746
    Par défaut
    à mon avis la modif de la base de registre est le plus simple, mais tu dois pouvoir trouver un composant qui permet de rajouter un raccourcis

  3. #3
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 670
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 670
    Points : 7 040
    Points
    7 040
    Par défaut
    Pour créer un raccourci, j'ai ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Shlobj, ActiveX, ComObj;
    procedure CreateShortCut(const szNomRaccourci, szApplication, szParametres, szRepertoireDeTravail: String; nModeAffichage: Integer; nToucheRaccourci: Word; szFichierIcone: String; nIndexIcone: Byte; szDescription: String);
    var 
       SCObject: IUnknown; 
       SCSLink: IShellLink;
       SCPFile: IPersistFile; 
       WFName: WideString; 
    begin
       SCObject := CreateComObject(CLSID_ShellLink);
       SCSLink := SCObject as IShellLink;
       SCPFile := SCObject as IPersistFile;
       SCSLink.SetPath(PChar(szApplication));
       SCSLink.SetArguments(PChar(szParametres));
       SCSLink.SetWorkingDirectory(PChar(szRepertoireDeTravail));
       SCSLink.SetShowCmd(nModeAffichage);
    //   SCSLink.SetHotkey(nToucheRaccourci);
       SCSLink.SetIconLocation(PChar(szFichierIcone), nIndexIcone);
       SCSLink.SetDescription(PChar(szDescription));
       WFName := szNomRaccourci;
       SCPFile.Save(PWChar(WFName), False);
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    begin                                                                                        //SW_SHOWMAXIMIZED
       CreateShortCut('Test.lnk', Application.ExeName, '56', ExtractFilePath(Application.ExeName), SW_SHOWNORMAL, 65, 'D:\Projets Delphi\xxx\Images\zzz_.ico', 0, 'Description du raccourci !');
    end;

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 8
    Points : 2
    Points
    2
    Par défaut Créer un raccourci
    Merci pour vos réponse, je vais essayer ce code et je vous tiendrais au courant du résultat.
    @+

  5. #5
    Membre confirmé
    Avatar de Philippe Gormand
    Inscrit en
    Mars 2002
    Messages
    330
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 330
    Points : 647
    Points
    647
    Par défaut Association
    Ou bien ceci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    {---------------------------------------------------------------------------}
    {  Procédure servant à écrire dans la base de registre. Racine est le noeud }
    {  principal de la base de registre (ex: HKEY_CLASSES_ROOT )                }
    {  clef est le noeuds choisi où l'on veut écrire (un noeud correspond à un  }
    {  noeud dans l'arborescence de la base de registre)                        }
    {  nom est le nom auquel on veut affecter une valeur                        }
    {  valeur est la valeur en question                                         }
    {---------------------------------------------------------------------------}
    Procedure EcritRegistre(Racine : DWord;Clef, Nom, Valeur : String);
    Var
       Registre : TRegistry;
    Begin
      try // try except end sont facultatifs. Voir mon exemple traitant de ce sujet (les exeptions).
        Registre:=TRegistry.Create;  // Création de Registre
        Registre.RootKey:=Racine;    //spécifie la clé racine choisi pour l'application
        Registre.OpenKey(clef,True); //Permet de sélectionner une clef particulière.
                                     // Une clef est un noeud de l'arborescence de la base de registre.
                                     // True car on veut que si le noeud n'existe pas on le crée.
        Registre.WriteString(nom,valeur); //affecte dans la base de registre la valeur valeur au nom nom
        Registre.CloseKey;                //Ecrit la clé en cours dans le registre et ferme cette clé.
        Registre.Free;                    // libération de la mémoire (annule l'effet de create)
      except
        Showmessage('erreur d''écriture dans la base de registre');
        Registre.Free;  // libère la mémoire même en cas d'erreur.
      end;
    End;
    {-----------------------------------------------------------------}
    {          Procédure permettant d'associer une extension          }
    {          à un executable.   Ex: *.pas -> DELPHI                 }
    {-----------------------------------------------------------------}
    Procedure Associe(Extension : String;Executable : String; Icone : String);
    Begin
       EcritRegistre(HKEY_CLASSES_ROOT,'.'+extension,'',extension+'_file');
       EcritRegistre(HKEY_CLASSES_ROOT, extension+'_file\shell\open\command','',executable+' %1');
       EcritRegistre(HKEY_CLASSES_ROOT, extension+'_file\DefaultIcon','',icone);
    End;
    {-----------------------------------------------------------------}
    {          Procédure permettant de retirer une extension          }
    {          d'un executable.                                       }
    {-----------------------------------------------------------------}
    Procedure RetireAssociation(Extension : String);
    Var
      Registre:TRegistry;
    Begin
      Try // try except end sont facultatifs. Voir mon exemple traitant de ce sujet (les exeptions).
        Registre:=TRegistry.Create;          // Création de Registre
        Registre.RootKey:=HKEY_CLASSES_ROOT; //spécifie la clef racine choisi pour l'application
        Registre.DeleteKey('.'+extension);   //efface le noeud
        Registre.Free;
        Registre:=TRegistry.Create;
        Registre.RootKey:=HKEY_CLASSES_ROOT;
        Registre.DeleteKey(extension+'_file\shell\open\command'); //efface le noeud
        Registre.DeleteKey(extension+'_file\shell\open');
        Registre.DeleteKey(extension+'_file\shell');
        Registre.DeleteKey(extension+'_file');
        Registre.CloseKey; // Ecrit la clé en cours dans le registre et ferme cette clé.
        Registre.Free;     // libération de la mémoire (annule l'effet de create)
      Except
        Showmessage('erreur');
        Registre.Free;  // libère la mémoire même en cas d'erreur.
      End;
    End;

Discussions similaires

  1. [WD18] Créer Raccourci dans le menu Démarrer/Démarrage
    Par PierreXV dans le forum WinDev
    Réponses: 1
    Dernier message: 24/04/2015, 16h07
  2. Réponses: 5
    Dernier message: 27/12/2010, 17h53
  3. Réponses: 3
    Dernier message: 21/09/2009, 17h06
  4. [Batch] Rechercher un fichier puis créer son raccourci dans le Menu Démarrer
    Par antislash dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 12/05/2009, 13h44
  5. Réponses: 2
    Dernier message: 07/07/2006, 10h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo