Demande d'aide

bobas30 Messages postés 2 Date d'inscription jeudi 18 janvier 2007 Statut Membre Dernière intervention 18 janvier 2007 - 18 janv. 2007 à 20:07
marzouki_tn2003 Messages postés 29 Date d'inscription mercredi 29 septembre 2004 Statut Membre Dernière intervention 31 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 !!

 

4 réponses

cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
18 janv. 2007 à 20:15
Et si tu ouvrais, la boite d'impression, tu aurai ainsi le choix de l'inprimante..
A+
Exploreur
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
18 janv. 2007 à 20:17
Ou tu fais un listing de tes imprimantes disponibles, puis tu sélectionne en code, la matricielle.
A+
Exploreur
bobas30 Messages postés 2 Date d'inscription jeudi 18 janvier 2007 Statut Membre Dernière intervention 18 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és 29 Date d'inscription mercredi 29 septembre 2004 Statut Membre Dernière intervention 31 janvier 2007 1
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



    Set objPrinter = Nothing
    End
End Sub
Rejoignez-nous