N51
Messages postés15Date d'inscriptiondimanche 22 octobre 2006StatutMembreDernière intervention27 novembre 2006
-
2 nov. 2006 à 14:56
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 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 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")
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 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!
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 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 #