Associer l'Ouverture d'un fichier avec un programme specifique

W

wilfreed

Guest
Bonjour,
je me permets de demander votre aide sur un point de detail qui me chiffonne :

en cliquant sur le lien hypertexte qui designe un fichier annexe, j'aimerais lancer l'ouverture de ce fichier avec un autre logiciel que celui par defaut dans windows.

Par exemple un .psd s'ouvre avec photoshop, mais j'aimerais specifier dans mon lien hypertexte que je veux l'ouvrir ici avec ACDSee par exemple.

Y'a t'il un moyen simple d'y arriver ? Est ce tellement trivial que je ne trouve pas de doc là dessus ? :/

Merci de votre aide

Wil
 
Z

Zon

Guest
Salut,

En VB, j'utilise ceci, on associe les fichier texte à Wordpad, et comme nom fichiertextetZon, attention modifier le chemin je suis sous PlugAndPry XP, on peut même associer une icône différente, à copier dans un module standard.


'adapté d'une source sur vbfrance.com
Private Declare Sub SHChangeNotify Lib "shell32.dll" (ByVal wEventId&, ByVal uFlags&, dwItem1 As Any, dwItem2 As Any)
Private Const SHCNE_ASSOCCHANGED = &H8000000
Private Const SHCNF_IDLIST = &H0&

Private Function Associer(ChApp$, T, NomFich$, Optional ChIcone$) As Boolean
Dim WshShell, Ch$, I&
On Error Resume Next
Set WshShell = CreateObject("Wscript.Shell")
For I = LBound(T) To UBound(T)
'Association de l'extention a un type "NomFich"
WshShell.RegWrite "HKEY_CLASSES_ROOT\." & T(I) & "\", NomFich, "REG_SZ"
Next I
Ch = "HKEY_CLASSES_ROOT\" & NomFich & "\"
WshShell.RegWrite Ch, NomFich & " General", "REG_SZ" ' Declaration de l'emplacement spécifique
WshShell.RegWrite Ch & "Shell\open\command\", Chr(34) & ChApp & Chr(34) & " %1", "REG_SZ" 'Indique le chemin de lexe a ouvrir
If Not IsMissing(ChIcone) Then
WshShell.RegWrite Ch & "DefaultIcon\", ChIcone, "REG_SZ" 'Permet de mettre l'adresse de l'icone à asssocier
SHChangeNotify SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0 'Reinitialise la base d'icone par defaut de windows
End If
Associer = IIf(Err = 0, True, False)
End Function


Sub Changer()
If Associer("C:\Program Files\Windows NT\Accessoires\wordpad.exe", Array("Txt"), "FichierTexteZon") Then
MsgBox "Changement réussi."
Else
MsgBox "Erreur"
End If
End Sub


Donc en VBA, on doit pouvoir bidouiller avec l'évènement sheetfollowhyperlink mais là j'ai pas le temps de tester.

A+++
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 493
Messages
2 088 957
Membres
103 990
dernier inscrit
lamiadebz