Dectecter la présence d'une imprimante [Résolu]

Messages postés
27
Date d'inscription
samedi 19 décembre 2009
Dernière intervention
16 février 2011
- 30 sept. 2010 à 18:49 - Dernière réponse :
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
- 2 oct. 2010 à 11:38
slt a tous ,j'ai cherché le code et j'ai pas trouvé...
j'aimerais un code qui me rend un message lorsque il y une imprimante qui est connectée
a mon ordinateur.
j'aimerais l'inserer dans un projet dans lequel l'impression se fait directement sans "Apercu avant impression"..
Merci d'avance..

Eridyms.......
Afficher la suite 

Votre réponse

13 réponses

Meilleure réponse
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
- 30 sept. 2010 à 19:53
3
Merci
Salut

    Dim a As String
    On Error Resume Next
        a = Printer.DeviceName
        If Err.Number = 0 Then
            MsgBox "Imprimante présente : " & a
        Else
            MsgBox "Pas d'imprimante"
        End If
    On Error GoTo 0

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Merci cs_Jack 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de cs_Jack
Meilleure réponse
Messages postés
500
Date d'inscription
jeudi 5 avril 2007
Dernière intervention
2 juillet 2012
- 30 sept. 2010 à 20:17
3
Merci
Bonjour,
Plus compliquer mais aussi plus "conventionnel",
Option Explicit
Private Declare Function EnumPrintersA Lib "Winspool.drv" _
  (ByVal flags As Long, ByVal name As String, ByVal Level As Long, _
  pPrinterEnum As Long, ByVal cdBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long
Private Declare Function lstrlenA Lib "Kernel32" (ByVal lpString As Any) As Long
Private Declare Function lstrcpyA Lib "Kernel32" (ByVal lpString1 As String, ByVal lpString2 As Long) As Long
  
Public ImprEnum() As String

Public Function NbPrinter() As Integer
  Dim PrinterEnum() As Long
  Dim Needed As Long, Returned As Long, I As Integer
 
  EnumPrintersA 2, vbNullString, 5, 0, 0, Needed, 0
  ReDim PrinterEnum(Needed / 4)
  EnumPrintersA 2, vbNullString, 5, PrinterEnum(0), _
    Needed, Needed, Returned
  ReDim ImprEnum(1 To Returned)
  For I = 1 To Returned
    ImprEnum(I) = Space$(lstrlenA(PrinterEnum(I * 5 - 5)))
    lstrcpyA ImprEnum(I), PrinterEnum(I * 5 - 5)
  Next I
  NbPrinter = I - 1
End Function

A+

Merci cs_lermite222 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de cs_lermite222
Meilleure réponse
Messages postés
500
Date d'inscription
jeudi 5 avril 2007
Dernière intervention
2 juillet 2012
- 1 oct. 2010 à 18:23
3
Merci
Mais oui,
If NbPrinter > 0 then ' Il y a au moins une imprimantes


Mais avec cette fonction tu a aussi le nom de la/les imprimante(s). Ce qui permet éventuellement de sélectionner une autre imprimante.
A+

Merci cs_lermite222 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de cs_lermite222
Messages postés
27
Date d'inscription
samedi 19 décembre 2009
Dernière intervention
16 février 2011
- 1 oct. 2010 à 17:38
0
Merci
merci..... mais comment appelé la fonction....
je peux avoir un exemple....
Commenter la réponse de eridyms
Messages postés
27
Date d'inscription
samedi 19 décembre 2009
Dernière intervention
16 février 2011
- 1 oct. 2010 à 19:10
0
Merci
ok...Dans le cas ou j'aurai plusieurs imprimante
[code=vb]
NbPrinter > 0 then
for i=1 to NbPrinter
combo1.addItem Printer.DeviceName

next
je pense que c'est ca
et comment montrer que c'est le choix qu'aura fait l'utilisateur qui servira a l'impression
Commenter la réponse de eridyms
Messages postés
500
Date d'inscription
jeudi 5 avril 2007
Dernière intervention
2 juillet 2012
- 1 oct. 2010 à 21:16
0
Merci
Tu dis, sans "Apercu avant impression"..
Tu travail avec VBA ou VB.. ?
Commenter la réponse de cs_lermite222
Messages postés
27
Date d'inscription
samedi 19 décembre 2009
Dernière intervention
16 février 2011
- 1 oct. 2010 à 21:18
0
Merci
vb
Commenter la réponse de eridyms
Messages postés
500
Date d'inscription
jeudi 5 avril 2007
Dernière intervention
2 juillet 2012
- 1 oct. 2010 à 21:24
0
Merci
Grrr.. Quel VB ?
Commenter la réponse de cs_lermite222
Messages postés
27
Date d'inscription
samedi 19 décembre 2009
Dernière intervention
16 février 2011
- 1 oct. 2010 à 21:27
0
Merci
excuse moi vb6
Commenter la réponse de eridyms
Messages postés
500
Date d'inscription
jeudi 5 avril 2007
Dernière intervention
2 juillet 2012
- 1 oct. 2010 à 22:14
0
Merci
C'est rien
En premier je pensais que tu était sur Excel et j'avais prépare le code en ce sens.
Tu ouvre un nouveau projet
dans la forme tu colle un bouton, un label.
une list avec la propriété Style à 1 (option)
et tu colle le code...
Option Explicit

Private Sub Command1_Click()
Dim PRt As Printer, NomPr As String, e As Integer, Im
    NomPr = List1.List(List1.ListIndex)
    For Each PRt In Printers
        If PRt.DeviceName = NomPr Then
            Set Printer = PRt
            Exit For
        End If
    Next
    NomPr = Printer.DeviceName
    Label1 = NomPr
End Sub

Private Sub Form_Load()
Dim i
Dim PRt As Printer, NomPr As String, e As Integer, Im
    NomPr = Printer.DeviceName
    Label1 = NomPr
    'List1.Style = 1  : A déterminer dans le design
    For Each PRt In Printers
        List1.AddItem PRt.DeviceName
        If PRt.DeviceName NomPr Then Im e
       e = e + 1
    Next
    List1.Selected(Im) = True
End Sub

Private Sub List1_Click()
Dim i
    For i = 0 To List1.ListCount - 1
        If i <> List1.ListIndex Then List1.Selected(i) = False
    Next i
End Sub

A+
Commenter la réponse de cs_lermite222
Messages postés
500
Date d'inscription
jeudi 5 avril 2007
Dernière intervention
2 juillet 2012
- 1 oct. 2010 à 22:18
0
Merci
J'ai oublié..
Juste pour savoir s'il y a une imprimante
If Printers.count>0 then 'Il y a une (ou des) imprimante(s)

La fonction NbPrinter n'est plus nécessaire.
A+
Commenter la réponse de cs_lermite222
Messages postés
27
Date d'inscription
samedi 19 décembre 2009
Dernière intervention
16 février 2011
- 1 oct. 2010 à 23:30
0
Merci
Excellent....
très heureux et très émue pour l'attention que tu m'a accorder...merci j'ai bien envie de garder le contact avec toi..
eridyms..
Commenter la réponse de eridyms
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
- 2 oct. 2010 à 11:38
0
Merci
En fait, si tu avais commencé par faire une SIMPLE recherche de code avec le mot "imprimante", tu aurais trouvé des exemples tout fait.

Prends cette habitude, le forum ne doit être là qu'en cas de problème insurmontable, pas pour remplacer l'aide de VB.
Commenter la réponse de cs_Jack

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.