cs_Stefun
Messages postés9Date d'inscriptionmercredi 9 novembre 2005StatutMembreDernière intervention 9 novembre 2010
-
9 nov. 2010 à 16:08
CTAC
Messages postés133Date d'inscriptionmardi 24 décembre 2002StatutMembreDernière intervention 8 juin 2012
-
9 nov. 2010 à 19:32
Bonjour,
j'aimerais afficher la boite de dialogue "Ouvrir avec" (qui permet d'associer un type de fichier à un programme).
En fait j'essaye d'ouvrir un fichier avec la commande ShellExecute et lorsque le fichier est de type inconnu, cette fonction me renvoie 5 !
Bizaremment et d'après cette page je devrais avoir 31 (ou 14 peut-être). Bref suite à ce retour j'aimerais afficher cette boite de dialogue pour avoir le même comportement que lorsqu'on essaye d'ouvrir ce fichier inconnu depuis l'explorateur Windows.
CTAC
Messages postés133Date d'inscriptionmardi 24 décembre 2002StatutMembreDernière intervention 8 juin 20125 9 nov. 2010 à 19:32
Bonjour,
Une autre façon de faire sans le rundll
Const SEE_MASK_INVOKEIDLIST = &HC
Const SEE_MASK_NOCLOSEPROCESS = &H40
Const SEE_MASK_FLAG_NO_UI = &H400
Private Type SHELLEXECUTEINFO
cbSize As Long
fMask As Long
hwnd As Long
lpVerb As String
lpFile As String
lpParameters As String
lpDirectory As String
nShow As Long
hInstApp As Long
lpIDList As Long
lpClass As String
hkeyClass As Long
dwHotKey As Long
hIcon As Long
hProcess As Long
End Type
Private Declare Function ShellExecuteEx Lib "shell32.dll" (SEI As SHELLEXECUTEINFO) As Long
Sub OuvrirAvec(FileName$)
Dim SEI As SHELLEXECUTEINFO
Dim r As Long
With SEI
.cbSize = Len(SEI)
.fMask = SEE_MASK_NOCLOSEPROCESS Or _
SEE_MASK_INVOKEIDLIST Or SEE_MASK_FLAG_NO_UI
.hwnd = 0&
.lpVerb = "openas"
.lpFile = FileName
.lpParameters = vbNullChar
.lpDirectory = vbNullChar
.nShow = 0
.hInstApp = 0
.lpIDList = 0
End With
r = ShellExecuteEx(SEI)
End Sub
Sub Test()
Dim MonFichier$
MonFichier = "C:\essai.test"
OuvrirAvec MonFichier
End Sub