Récupérer la cible d'un raccourci

Résolu
esigvb Messages postés 24 Date d'inscription mercredi 16 mars 2005 Statut Membre Dernière intervention 25 mars 2009 - 30 mai 2006 à 09:56
esigvb Messages postés 24 Date d'inscription mercredi 16 mars 2005 Statut Membre Dernière intervention 25 mars 2009 - 31 mai 2006 à 16:16
Bonjour,

Comme le sujet l'indique, je recherche à récupérer la cible d'un raccourci.
J'ai trouvé des informations sur la création d'un raccourci, mais rien pour connaitre la cible, la description...

Merci d'avance pour votre aide.

1 réponse

esigvb Messages postés 24 Date d'inscription mercredi 16 mars 2005 Statut Membre Dernière intervention 25 mars 2009
31 mai 2006 à 16:16
Bonjour,

Voici une procédure qui permet de trouver la cible d'un raccourci et sa description.
Je remercie Cirec pour son aide.


Uses ComObj, // pour IUnknown
ActiveX, // pour IPersistFile
ShlObj; // pour IShellLink

procedure Connaitre_la_cible(Chemin_du_raccourci: String);
var
Unknown : IUnknown;
ShellLink : IShellLink;
PersistFile : IPersistFile;
WFileName : WideString;
Cible_du_raccourci : String;
X1 : Array [0..255] Of Char;
Data : TWin32FindData;
begin

if UpperCase(ExtractFileExt(Chemin_du_raccourci)) <> '.LNK' then
begin
ShowMessage('Erreur: '+Chemin_du_raccourci+' n''est pas unRacourci valide');
exit; // Si ce n'est pas un racourci on quitte
end;

// Accéder aux deux interfaces de l'objet
Unknown := CreateComObject(CLSID_ShellLink);
ShellLink := Unknown as IShellLink;
PersistFile := Unknown as IPersistFile;

// Chargement du raccourci
WFileName := Chemin_du_raccourci;
PersistFile.Load(PWChar(WFileName),STGM_READ);

// Récupère le path de la cible
ShellLink.GetPath( @X1,MAX_PATH,Data,SLGP_UNCPRIORITY);
Cible_du_raccourci := StrPas(@X1);

// Récupère la description du raccourci
ShellLink.GetDescription(@X1,MAX_PATH);
Description_du_raccourci := StrPas(@X1);

// Affiche le résultat
Label1.Caption:='Cible : '+ Cible_du_raccourci;
Label2.Caption:='Description : '+ Description_du_raccourci;
end;
3
Rejoignez-nous