API pour connaitre l'appli associee a un type de fichier

cs_LuTo Messages postés 102 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 6 juin 2010 - 8 juil. 2004 à 20:44
cs_LuTo Messages postés 102 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 6 juin 2010 - 9 juil. 2004 à 08:39
Salut à tous,

Ben voilà, tout est dit dans le titre. Est-ce que quelqu'un connait l'API qui donne l'application associée à un type de fichier, comme "AssociatedIcon" mais pour le nom de l'appli.
Par exemple, pour les fichiers .txt, je voudrais que ça me donne "notepad.exe".

Merci, et bonne vacances,
LuTo

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
8 juil. 2004 à 20:48
Salut LuTo
C'est l'api FindExecutable qui te renverra ça.
Je te copie un exemple :
Private Declare Function FindExecutable _ Lib "shell32.dll" Alias "FindExecutableA" _
  (ByVal lpFile As String, _
   ByVal lpDirectory As String, _
   ByVal sResult As String) As Long
Private Const MAX_PATH = 260
Private Const ERROR_FILE_NO_ASSOCIATION = 31&
Private Const ERROR_FILE_NOT_FOUND = 2&
Private Const ERROR_PATH_NOT_FOUND = 3&
Private Const ERROR_FILE_SUCCESS = 32& 'my constant
Private Const ERROR_BAD_FORMAT = 11&

Private Sub Command1_Click()
   Dim success As Long
   Dim pos As Long
   Dim sResult As String
   Dim msg As String
   sResult = Space$(MAX_PATH)
  'lpFile: name of the file of interest
  'lpDirectory: location of lpFile
  'sResult: path and name of executable associated with lpFile
   success = FindExecutable(Text1.Text, "c:", sResult)
   Select Case success
      Case ERROR_FILE_NO_ASSOCIATION: msg = "no association"
      Case ERROR_FILE_NOT_FOUND: msg = "file not found"
      Case ERROR_PATH_NOT_FOUND: msg = "path not found"
      Case ERROR_BAD_FORMAT:     msg = "bad format"
      Case Is >= ERROR_FILE_SUCCESS:
         pos = InStr(sResult, Chr$(0))
         If pos Then
            msg = Left$(sResult, pos - 1)
         End If
   End Select
   MsgBox msg
End Sub

Vala
Jack
0
cs_LuTo Messages postés 102 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 6 juin 2010
9 juil. 2004 à 08:39
Cool. En plus ton exemple est beaucoup plus complet que celui dans API guide.
Merci.
LuTo
0
Rejoignez-nous