Comment lire les propriétés du port d'une imprimante?

Signaler
Messages postés
5
Date d'inscription
jeudi 25 janvier 2007
Statut
Membre
Dernière intervention
9 janvier 2014
-
Messages postés
5
Date d'inscription
jeudi 25 janvier 2007
Statut
Membre
Dernière intervention
9 janvier 2014
-
Bonjour,

après avoir longuement cherché, je ne trouve pas la réponse à ma question: est-il possible, et si oui comment, de lire les propriétés d'une imprimante réseau (au préalable ajoutée sur la machine qui exécute le code) pour en extraire l'adresse IP du port - si celui-ci est de type TCP/IP?
J'ai ce besoin pour rendre "user friendly" le paramétrage d'un process d'impression directe par client TCP. L'idée étant que l'utilisateur sélectionne une imprimante par son nom dans une liste et le programme va lire son adresse IP...

Merci d'avance!

PS: je travaille sur un VB Express 2010.

3 réponses

Messages postés
7071
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 novembre 2020
116
Messages postés
5
Date d'inscription
jeudi 25 janvier 2007
Statut
Membre
Dernière intervention
9 janvier 2014

Bonjour,

je développe sou VB .Net et mes applis tournent sous XP ou 7.
Le cas Microsoft est pour du VBA et cela ne fonctionne pas sur mon PC, même en VBA avec Excel (ne trouve pas de librairie KERNEL et pas de fonction GetProfileString dans kernel32)

Y a-t-il un autre moyen?

Cyril
Messages postés
7071
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 novembre 2020
116
Voici un code qui affiche les imprimantes dans une listBox. Il suffit de sélectionner dans la listBox l'imprimante que l'on veut mettre par défaut:

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'affiche les imprimantes
Dim printers As System.Drawing.Printing.PrinterSettings.StringCollection
printers = System.Drawing.Printing.PrinterSettings.InstalledPrinters()
For x As Integer = 0 To printers.Count - 1
ListBox1.Items.Add(printers(x))
Next
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'sélectionne l'imprimante par défaut
Dim net
net = CreateObject("WScript.Network")
net.SetDefaultPrinter(ListBox1.SelectedItem)
End Sub
Messages postés
5
Date d'inscription
jeudi 25 janvier 2007
Statut
Membre
Dernière intervention
9 janvier 2014

Merci mais ça c'est déjà fait.
Mon problème est d'arriver à récupérer l'adresse IP du port de l'imprimante (postulat étant qu'il s'agit d"'une imprimante locale sur port TCP/IP) qui est sélectionnée dans la liste.
J'établit ensuite une connexion TCP sur cette imprimante pour lui transmettre des données sans passer par le spooler Windows.