bobas30
Messages postés2Date d'inscriptionjeudi 18 janvier 2007StatutMembreDernière intervention18 janvier 2007
-
18 janv. 2007 à 20:07
marzouki_tn2003
Messages postés29Date d'inscriptionmercredi 29 septembre 2004StatutMembreDernière intervention31 janvier 2007
-
18 janv. 2007 à 20:29
auras quelq'u de gentillesse de m'aider a resoudre un casse tete? J'ai deux imprimantes dont une branché sur LPT1 et autre sur reseau defini comme l'imprimante par default de windows. j'ai fait une application qui remplis les imprimés automatiquement et doit les imprimer sur imprimante matricielle qui est branché sur LPT1. en tappant la ligne:
Set Printer = Printers(0)
theoriquement l'imprimante par defaut doit devenir l'imprimante indexé 0 qui est ma imprimante matricielle, mais ce ne passse pas comme ca ! l'impression est toujours envoyé a l'imprimante reseau !!
bobas30
Messages postés2Date d'inscriptionjeudi 18 janvier 2007StatutMembreDernière intervention18 janvier 2007 18 janv. 2007 à 20:23
ce que j'ai dejas fait! tout d'abord j'ai listé les imprimantes et temporairement j'ai fait la boite du choix d'imprimante. le ik cé que l'impression d'un imprimé dans l'application n'est autorisé q'une fois pour eviter les fraudes, et si on ce trompe d'imprimante c'est dans l'os, car la page sort sur une feuille simple et non sur le formulaire !! merci en tout cas !!
marzouki_tn2003
Messages postés29Date d'inscriptionmercredi 29 septembre 2004StatutMembreDernière intervention31 janvier 20071 18 janv. 2007 à 20:29
salut
non c pas obligatoire que l'index 0 est celui de l'imprimante par defaut
bon so tu veux voici un code qui j'espére t'aide :
dans un module :
' API Windows Function
Private Declare Function GetProfileString Lib "kernel32" Alias _
"GetProfileStringA" (ByVal lpAppName As String, _
ByVal lpKeyName As String, ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long) As Long
Public Function GetDefaultPrinter() As Printer
'---------------------------------------------------------------
' cette fonction determine l'imprimante par defaut
'---------------------------------------------------------------
Dim strBuffer As String * 254
Dim lngRetValue As Long
Dim strDefaultPrinter As String
Dim strlistDefaultPrinter() As String
Dim objPrinter As Printer
' Information sur l'imprimante par defaut
lngRetValue = GetProfileString("windows", "device", ",,,", _
strBuffer, 254)
strDefaultPrinter = Left(strBuffer, InStr(strBuffer, Chr(0)) - 1)
strlistDefaultPrinter = Split(strDefaultPrinter, ",")
For Each objPrinter In Printers
If objPrinter.DeviceName = strlistDefaultPrinter(0) Then
' succes !
Exit For
End If
Next
' si pas d'imprimante
If objPrinter.DeviceName <> strlistDefaultPrinter(0) Then
Set objPrinter = Nothing
End If
Set GetDefaultPrinter = objPrinter
End Function
Pour tester crée une forme et écris ces quelque ligne pour voir le resultat :
Private Sub Form_Load()
Dim objPrinter As Printer
Set objPrinter = GetDefaultPrinter()
MsgBox "L'imprimante par defaut est: " + objPrinter.DeviceName
MsgBox "Le driver est : " + objPrinter.DriverName
MsgBox "Le port est : " + objPrinter.Port