Récupérer un raccourcis avec un CommonDialog

Résolu
Messages postés
9
Date d'inscription
mercredi 12 février 2003
Statut
Membre
Dernière intervention
13 septembre 2005
-
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
-

9 réponses

Messages postés
9
Date d'inscription
mercredi 12 février 2003
Statut
Membre
Dernière intervention
13 septembre 2005

J'ai trouvé la solution !

pour commencer donc, je travaille sous W2k, j'utilise office2000 (c'est du VBA que je fait, j'ai oublié de le préciser).

j'ai donc créé dans le code comme ceci :




Set opendlg = CreateObject("MSComDlg.CommonDialog")





Et donc, pour récupérer le chemin du lnk et non de sa cible il faut
bien mettre comme tu as dit le flag:cdlOFNNoDereferenceLinks :




opendlg.flags=cdlOFNNoDereferenceLinks





Cela dit, la ligne ci dessus ne fonctionne toujours pas!

En effet la constante "cdlOFNNoDereferenceLinks" ne doit pas être
connue d'office! du coup en mettant directement la valeur de la
constante ça fonctionne !!! :



opendlg.flags =&H100000
Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
27
Bonjour,
Tu n'aurais pas oublié le texte de ton post par hasard ???


jpleroisse
Messages postés
9
Date d'inscription
mercredi 12 février 2003
Statut
Membre
Dernière intervention
13 septembre 2005

Bon je recommence : et encore désolé : mauvaise manip



Bonjour !



Voici ma question : Est-il possible de récupérer un raccourci à l'aide d'un commondialog.

Je m'explique : je souhaite obtenir le chemin du fichier ".lnk" et non la cible de celui-ci.



Merci d'avance de vous être pris la tête pour moi !
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
28
J'en déduis que tu dois être sur Win9x ou WinNT4.0 ! Pour ne pas obtenir la cible du fichier lnk mais bien le fichier lnk dans une CommonDialog, tu dois alors préciser le flag cdnOFNNoDereferenceLinks.
Ex :

With CommonDialog1
.Flags = cdlOFNNoDereferenceLinks
.ShowOpen
MsgBox .FileName
End With

A noter que ce flag n'a aucun effet sous Win2k,WinXP ou Win2k3 ... sur ces OS, c'est toujours le lien qui est retourné.

Christophe
Messages postés
9
Date d'inscription
mercredi 12 février 2003
Statut
Membre
Dernière intervention
13 septembre 2005

Merci de ta réponse christophe , mais c'est la solution inverse que je cherche :

Je suis sous W2K et c'est justement le ".lnk" que je souhaite récupérer
et non la cible. y aurais-t-il un autre flag qui fonctionnerais ?
Messages postés
9
Date d'inscription
mercredi 12 février 2003
Statut
Membre
Dernière intervention
13 septembre 2005

désolé faudra que j'aprenne à lire : c'est moi qui ai mal compris ta réponse .

mais ceci dit s'il existe un autre moyen que le flag ou même le commondialog, je suis preneur !
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
28
Mais si tu es sous Win2k tu n'as besoin de rien !!! Le CommonDialog doit te retourner le lnk et non sa cible ? Enfin, pour 2k3 et XP c'est sûr ! Pour 2k je l'ai pas tester (pas de 2k sous la main !!) A moins qu'il ne s'agisse d'un bug dans le MSDN
Messages postés
9
Date d'inscription
mercredi 12 février 2003
Statut
Membre
Dernière intervention
13 septembre 2005

Merci encore Christophe, tu m'as bien aidé, j'aurais pas pensé au flag .


BigStar
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
28
Pense à cliquer sur un bouton "Réponse acceptée" pour aider ceux qui aurait le même pb par la suite et qui feront une recherche sur le forum ...

christophe