Page 1 sur 1
Rechercher le programme associer a un fichier...
Publié : lun. 06/févr./2012 20:21
par GallyHC
Bonjour,
Voila une petite routine pour trouver l'association d'un fichier avec le programme par defaut. voir ici
http://www.koakdesign.info/news/?url=4d&val=42
Cordialement,
GallyHC
Re: Rechercher le programme associer a un fichier...
Publié : mar. 07/févr./2012 1:25
par Ar-S
Salut Gallyhc,
Chez moi lorsque je tente la procédure avec un .avi, j'ai un retour null
Re: Rechercher le programme associer a un fichier...
Publié : mar. 07/févr./2012 9:34
par GallyHC
Salut Ar-S,
Bizzard cela fonctionne bien chez moi, c'est une adaptation d'un code VB6. Je vais faire des recherche la dessus. Tu as essayer avec d'autres fichiesr?
Cordialement,
GallyHC
Re: Rechercher le programme associer a un fichier...
Publié : mar. 07/févr./2012 10:00
par Mesa
Moi aussi, je n'arrive pas à la faire fonctionner, bizarre car sur ton site j'ai trouvé ça
Code : Tout sélectionner
File.s = "win.ini"
Path.s = "c:\windows\"
Result.s = Space(#MAX_PATH)
i = FindExecutable_(@File.s, @Path.s, @Result.s)
Debug Result
ça fonctionne mais uniquement avec des "documents".
On peut ajouter les codes d'erreurs :
Code : Tout sélectionner
File.s = "win.ini"
Path.s = "c:\windows\"
Result.s = Space(#MAX_PATH)
i = FindExecutable_(@File.s, @Path.s, @Result.s)
Debug Result
Select i
Case #SE_ERR_FNF
Debug "The specified file was Not found"
Case #SE_ERR_PNF
Debug "The specified path is invalid."
Case #SE_ERR_ACCESSDENIED
Debug "The specified file cannot be accessed."
Case #SE_ERR_OOM
Debug "The system is out of memory Or resources"
Case #SE_ERR_NOASSOC
Debug "There is no association For the specified file type With an executable file"
Default
Debug "no error"
EndSelect
Pour que ça fonctionne avec toutes les extensions, j'ai trouvé un code de Flaith :
Code : Tout sélectionner
; code de Flaith
Procedure get_exe_from_exe(Assoc.s)
Enumeration
#ASSOCSTR_COMMAND = 1
#ASSOCSTR_EXECUTABLE
#ASSOCSTR_FRIENDLYDOCNAME
#ASSOCSTR_FRIENDLYAPPNAME
#ASSOCSTR_NOOPEN
#ASSOCSTR_SHELLNEWVALUE
#ASSOCSTR_DDECOMMAND
#ASSOCSTR_DDEIFEXEC
#ASSOCSTR_DDEAPPLICATION
#ASSOCSTR_DDETOPIC
#ASSOCSTR_INFOTIP
#ASSOCSTR_QUICKTIP
#ASSOCSTR_TILEINFO
#ASSOCSTR_CONTENTTYPE
#ASSOCSTR_DEFAULTICON
#ASSOCSTR_SHELLEXTENSION
#ASSOCSTR_DROPTARGET
#ASSOCSTR_DELEGATEEXECUTE
#ASSOCSTR_MAX
EndEnumeration
Enumeration
#ASSOCF_INIT_NOREMAPCLSID = $00000001
#ASSOCF_INIT_BYEXENAME = $00000002
#ASSOCF_OPEN_BYEXENAME = $00000002
#ASSOCF_INIT_DEFAULTTOSTAR = $00000004
#ASSOCF_INIT_DEFAULTTOFOLDER = $00000008
#ASSOCF_NOUSERSETTINGS = $00000010
#ASSOCF_NOTRUNCATE = $00000020
#ASSOCF_VERIFY = $00000040
#ASSOCF_REMAPRUNDLL = $00000080
#ASSOCF_NOFIXUPS = $00000100
#ASSOCF_IGNOREBASECLASS = $00000200
#ASSOCF_INIT_IGNOREUNKNOWN = $00000400
EndEnumeration
pcchOut.l = #MAX_PATH
pszOut.s = Space(pcchOut)
flags = #ASSOCF_NOTRUNCATE | #ASSOCF_REMAPRUNDLL
;pszAssoc.s = ".avi";".htm"
pszAssoc.s = Assoc
pszExtra.s = "open"
Res_Lib=OpenLibrary(#PB_Any, "Shlwapi.dll");#PB_Any ne fonctionne pas ?
*AssocQueryString = GetFunction(Res_Lib, "AssocQueryStringA")
If *AssocQueryString
hresult = CallFunctionFast(*AssocQueryString, flags, #ASSOCSTR_EXECUTABLE, @pszAssoc, @pszExtra, @pszOut, @pcchOut)
Select hresult
Case #S_OK
Debug "Executable name for '"+pszAssoc+"' : "+pszOut
Case #S_FALSE
Debug "pszOut is NULL. pcchOut contains the required buffer size"
Case #E_POINTER
Debug "The pszOut buffer is too small to hold the entire string"
Default
Debug "No association defined for extension '"+pszAssoc+"'"
EndSelect
EndIf
CloseLibrary(Res_Lib)
EndProcedure
Debug get_exe_from_exe(".avi")
Mesa.
Re: Rechercher le programme associer a un fichier...
Publié : mar. 07/févr./2012 10:14
par GallyHC
bonjour Mesa,
c'est normal je ne vois pas pourquoi ce If
avec
je penses que cela ira mieu
Cordialement,
GallyHC
Re: Rechercher le programme associer a un fichier...
Publié : mar. 07/févr./2012 10:18
par Mesa
En effet, c'est tout bête, je corrige mon post.
Merci.
Mesa.