Besoin d'aide s'il vous plait

N51 Messages postés 15 Date d'inscription dimanche 22 octobre 2006 Statut Membre Dernière intervention 27 novembre 2006 - 2 nov. 2006 à 14:56
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 - 2 nov. 2006 à 15:10
Bonjour,

j'ai récupéré un code sur ce site pour imprimer des fichiers
Avec des fichiers .txt ou .doc ou .pdf, cela fonctionne
Cependant lorsque je veux imprimer un fichier autocad .dwg j'ai cette erreur :

error n° 2147220425
Aucune association définie pour ce type de fichier

que puis je faire ?

Ci dessous mon code :

Option Explicit
 
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
 
Private Declare Function ShellExecuteForExplore Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, lpParameters As Any, lpDirectory As Any, ByVal nShowCmd As Long) As Long




Public Enum EShellShowConstants
    zouSW_HIDE = 0
     zouSW_MAXIMIZE = 3
     zouSW_MINIMIZE = 6
     zouSW_SHOWMAXIMIZED = 3
     zouSW_SHOWMINIMIZED = 2
     zouSW_SHOWNORMAL = 1
     zouSW_SHOWNOACTIVATE = 4
     zouSW_SHOWNA = 8
     zouSW_SHOWMINNOACTIVE = 7
     zouSW_SHOWDEFAULT = 10
     zouSW_RESTORE = 9
     zouSW_SHOW = 5
End Enum
Private Const ERROR_FILE_NOT_FOUND = 2&
Private Const ERROR_PATH_NOT_FOUND = 3&
Private Const ERROR_BAD_FORMAT = 11&
Private Const SE_ERR_ACCESSDENIED = 5
Private Const SE_ERR_ASSOCINCOMPLETE = 27
Private Const SE_ERR_DDEBUSY = 30
Private Const SE_ERR_DDEFAIL = 29
Private Const SE_ERR_DDETIMEOUT = 28
Private Const SE_ERR_DLLNOTFOUND = 32
Private Const SE_ERR_FNF = 2
Private Const SE_ERR_NOASSOC = 31
Private Const SE_ERR_PNF = 3
Private Const SE_ERR_OOM = 8
Private Const SE_ERR_SHARE = 26
 
Public Function ShellEx(ByVal sFile As String, _
        Optional ByVal eShowCmd As EShellShowConstants = zouSW_SHOWDEFAULT, _
        Optional ByVal sParameters As String = "", _
        Optional ByVal sDefaultDir As String = "", _
        Optional sOperation As String = "print", _
        Optional Owner As Long = 0 _
    ) As Boolean
Dim lR As Long
Dim lErr As Long, sErr As String
    If (InStr(UCase$(sFile), ".EXE") <> 0) Then
        eShowCmd = 0
    End If
    On Error Resume Next    If (sParameters "") And (sDefaultDir "") Then
        lR = ShellExecuteForExplore(Owner, sOperation, sFile, 0, 0, zouSW_SHOWNORMAL)
    Else
        lR = ShellExecute(Owner, sOperation, sFile, sParameters, sDefaultDir, eShowCmd)
    End If
   
    If (lR < 0) Or (lR > 32) Then
        ShellEx = True
    Else
        lErr = vbObjectError + 1048 + lR
        Select Case lR
        Case 0            lErr 7: sErr "Dépassement de mémoire"
           
     Case ERROR_FILE_NOT_FOUND
                 lErr 53: sErr "Fichier non trouvé"
        Case ERROR_PATH_NOT_FOUND
                    lErr 76: sErr "Chemin inconnu"
        Case ERROR_BAD_FORMAT
       
            sErr = "L'exécutable n'est pas valide ou est corrompu"
        Case SE_ERR_ACCESSDENIED
                   lErr 75: sErr "Erreur/ accès au répertoire ou au fichier"
        Case SE_ERR_ASSOCINCOMPLETE
       
            sErr = "Ce type de fichier est sans association valable"
        Case SE_ERR_DDEBUSY
                    lErr 285: sErr "Le fichier n'a pu être ouvert car en cours d'utilisation. Recommencez plus tard SVP."
        Case SE_ERR_DDEFAIL
                    lErr 285: sErr "Le fichier n'a pu être ouvert car la transaction DDE a failli.  Recommencez plus tard SVP."
        Case SE_ERR_DDETIMEOUT
                    lErr 286: sErr "Le fichier n'a pu être ouvert (délai max dépassé).  Recommencez plus tard SVP."
        Case SE_ERR_DLLNOTFOUND
                    lErr 48: sErr "Impossible de trouver la DLL spécifiée."
        Case SE_ERR_FNF
                    lErr 53: sErr "Fichier non trouvé"
        Case SE_ERR_NOASSOC
        MsgBox lR
            sErr = "Aucune association définie pour ce type de fichier"
        Case SE_ERR_OOM
                    lErr 7: sErr "Mémoire épuisée"
        Case SE_ERR_PNF
                    lErr 76: sErr "Chemin inconnu"
        Case SE_ERR_SHARE


            lErr 75: sErr "Violation de partage !."
        Case Else


            sErr = "Une erreur a surgi au moment d'essayer d'ouvrir ou d'éditer le fichier choisi."
        End Select
               
        MsgBox "Error n°" & CStr(lErr) & Chr(13) & sErr & " sur ouverture  : " & Chr(13) & sFile, vbCritical
        ShellEx = False
    End If
 
End Function
 
 
Private Sub Command1_Click()
   ShellEx ("c:\tmp\toto.txt")
   ShellEx ("c:\tmp\toto.doc")
   'ShellEx ("c:\tmp\\001.dwg")
  


 
End Sub
 




 

2 réponses

drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
2 nov. 2006 à 15:05
Salut ça veut tout simplement dire que ce format n'est pas supporté pour l'impression! Bon j'ai pas autocad mais topsolid! Pour imprimer un fichier dwg je pense que tu dois ajouter autocad en référence dans ton projet et normalement tu as des evenements, méthodes, propriétés ...propre à autocad comme si tu travaillais sur excel un peu, sauf que c'est plus un tableur mais un logiciel de dao! Normalement tu peux piloter autocad par vb!

 Drikce 06
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
2 nov. 2006 à 15:10
Le message est à priori assez clair, aucun logiciel n'est enregistré sur la machine au niveau de Windows pour imprimer les .dwg directement depuis une simple commande.

Déjà vérifie dans l'explorateur, en faisant un clic droit sur un fichier dwg, si tu as l'option d'impression.

Si c'est pas le cas, il va falloir enregistrer un logiciel pour cette option.
Je ne sais pas si Autocad le permet directement, sinon essaye peut-etre avec la visionneuse (à télécharger sur le site d'Autodesk)

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
Rejoignez-nous