Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Recherche de fichier Exe associé

1 réponse
Avatar
Bruno Frisque
Bonjour le groupe,

Il s'agit ici de retrouver, par code, le Viewer associé à un type d'image.
voici le code complet :
'---------------------------------------------------------------
Option Compare Database
Option Explicit
Public ViewerPath

'APIs: Trouver le fichier EXE associé à un document
' find the default viewer of the image 16/02/06 (Lebans Stephen site)

'*********** Code Start ************
Const cMAX_PATH = 260
Const ERROR_NOASSOC = 31
Const ERROR_FILE_NOT_FOUND = 2&
Const ERROR_PATH_NOT_FOUND = 3&
Const ERROR_BAD_FORMAT = 11&
Const ERROR_OUT_OF_MEM = 0

Private Declare Function apiFindExecutable Lib "shell32.dll" _
Alias "FindExecutableA" _
(ByVal lpFile As String, _
ByVal lpDirectory As String, _
ByVal lpResult As String) _
As Long

Function fFindEXE(stFile As String, _
stDir As String) _
As String
'Usage Example:
' ?fFindEXE("test.xls","c:\temp")
'ou bien, at form level : call fFindExe("I73D50.TIF","C:\Data")

Dim lpResult As String
Dim lngRet As Long
Dim pos
lpResult = Space(cMAX_PATH)
lngRet = apiFindExecutable(stFile, stDir, lpResult)

If lngRet > 32 Then
pos = InStr(1, lpResult, Chr(0), vbBinaryCompare) - 1 '< correction
by 3stone
fFindEXE = Left(lpResult, pos) ''< correction by 3stone
ViewerPath = Left(lpResult, pos)
Else
Select Case lngRet:
Case ERROR_NOASSOC: fFindEXE = "Error: No Association"
Case ERROR_FILE_NOT_FOUND: fFindEXE = "Error: File Not Found"
Case ERROR_PATH_NOT_FOUND: fFindEXE = "Error: Path Not Found"
Case ERROR_BAD_FORMAT: fFindEXE = "Error: Bad File Format"
Case ERROR_OUT_OF_MEM: fFindEXE = "Error: Out of Memory"
End Select
End If
Debug.Print "viewer's name at MODULE:" & ViewerPath & "."
'---------------------------------------------------------------------------
----
Ce code marche parfaitement sur mon PC (XP Pro SP1) et sous A2K
Dès que l'on place le programme.MDB sur un autre PC, cela ne va plus du
tout...
Stations Win XP Home, Win XP Pro et Millenium ....
sur ces stations : le code Debug.Print "viewer's name at MODULE:" &
ViewerPath & "."
donne :viewer's name at MODULE . et c'est tout.

Ce code est-il bien valable pour tous les OS ? et pour Access 2000, 2002 et
2003?

D'avance grand merci

1 réponse

Avatar
3stone
re,

"Bruno Frisque"
| 'APIs: Trouver le fichier EXE associé à un document
| ' find the default viewer of the image 16/02/06 (Lebans Stephen site)


Je sais que tu y tiens, mais cette fonction vient de là :
http://www.mvps.org/accessfr/apis/api0023.htm
et si tu regarde à droite... Author: "Dev Ashish"

et c'est également son site ;-)


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/