esigvb
Messages postés24Date d'inscriptionmercredi 16 mars 2005StatutMembreDernière intervention25 mars 2009
-
30 mai 2006 à 09:56
esigvb
Messages postés24Date d'inscriptionmercredi 16 mars 2005StatutMembreDernière intervention25 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...
esigvb
Messages postés24Date d'inscriptionmercredi 16 mars 2005StatutMembreDernière intervention25 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);