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

hdeumpty Messages postés 5 Date d'inscription jeudi 25 janvier 2007 Statut Membre Dernière intervention 9 janvier 2014 - 16 déc. 2013 à 14:36
hdeumpty Messages postés 5 Date d'inscription jeudi 25 janvier 2007 Statut Membre Dernière intervention 9 janvier 2014 - 9 janv. 2014 à 09:27
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

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
21 déc. 2013 à 08:44
0
hdeumpty Messages postés 5 Date d'inscription jeudi 25 janvier 2007 Statut Membre Dernière intervention 9 janvier 2014
Modifié par hdeumpty le 8/01/2014 à 11:51
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
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
8 janv. 2014 à 15:36
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
0
hdeumpty Messages postés 5 Date d'inscription jeudi 25 janvier 2007 Statut Membre Dernière intervention 9 janvier 2014
9 janv. 2014 à 09:27
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.
0
Rejoignez-nous