Hit-Parade .VB Research Center . Compteur
Accueil ~  Code ~  Programmes ~  Api ~  Forum ~  Cours ~  Livres ~  Quiz ~  Annuaire
~ Edito ~
12/03/2006 @ 13:39
Depuis la dernière mise à jour (qui remonte à... oulala plusieurs mois), un petit ménage de printemps s'impose. Ca tombe bien, c'est presque la période.
Au menu, et progressivement sur les jours à venir, rafraîchissement de plusieurs fonctions et procédures, nouvelles APIs et nouveaux programmes.

~ Rechercher ~

  

~ Annuaire VB ~
 Rechercher un site :
  

~ Partenaires ~

Procédure : LanceAssoExe
Permet de lancer le programme associé à une extension connue de Windows.
(Consulté 19170 fois.)

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
         (
ByVal hwnd As Long, ByVal lpszOp As String, ByVal lpszFile As String, _
       
ByVal lpszParams As String, ByVal lpszDir As String, ByVal FsShowCmd As Long) As Long
Private Declare Function
GetDesktopWindow Lib "user32" () As Long
Const
SW_SHOWNORMAL = 1
Const SE_ERR_FNF = 2&
Const SE_ERR_PNF = 3&
Const SE_ERR_ACCESSDENIED = 5&
Const SE_ERR_OOM = 8&
Const SE_ERR_DLLNOTFOUND = 32&
Const SE_ERR_SHARE = 26&
Const SE_ERR_ASSOCINCOMPLETE = 27&
Const SE_ERR_DDETIMEOUT = 28&
Const SE_ERR_DDEFAIL = 29&
Const SE_ERR_DDEBUSY = 30&
Const SE_ERR_NOASSOC = 31&
Const ERROR_BAD_FORMAT = 11&

Public Sub LanceExeAsso(stFichier As String)
Dim
lghDC As Long, lgRep As Long
Dim
stErreur As String
lghDC = GetDesktopWindow()
lgRep = ShellExecute(lghDC, "Open", stFichier, "", "C:\", SW_SHOWNORMAL)
If lgRep <= 32 Then
   
' Erreur à afficher en cas d'échec de l'appel
   
Select Case lgRep
       
Case SE_ERR_FNF
            stErreur = "Fichier non trouvé"
       
Case SE_ERR_PNF
            stErreur = "Chemin non trouvé"
       
Case SE_ERR_ACCESSDENIED
            stErreur = "Accès refusé"
       
Case SE_ERR_OOM
            stErreur = "Pas assez de mémoire"
       
Case SE_ERR_DLLNOTFOUND
            stErreur = "DLL non trouvée"
       
Case SE_ERR_SHARE
            stErreur = "Une violation de partage est apparue"
       
Case SE_ERR_ASSOCINCOMPLETE
            stErreur = "Association incomplète ou invalide"
       
Case SE_ERR_DDETIMEOUT
            stErreur = "DDE Délai dépassé"
       
Case SE_ERR_DDEFAIL
            stErreur = "DDE transaction abortée"
       
Case SE_ERR_DDEBUSY
            stErreur = "DDE occupé"
       
Case SE_ERR_NOASSOC
            stErreur = "Pas d'association enregistrée pour ce type de fichier"
       
Case ERROR_BAD_FORMAT
            stErreur = "Fichier EXE invalide"
       
Case Else
           
stErreur = "Erreur inconnue"
   
End Select
   
MsgBox stErreur, vbExclamation, "Erreur"
End If
End Sub
Visual Basic Research Center - (c) 2000/2002 -  Webmaster : docvb (chez) free (point) fr