Est-il un .NET pour énumérer toutes les imprimantes réseau disponibles?
Est-il un moyen simple d'énumérer tous les imprimantes réseau .NET? Actuellement, je suis en montrant la PrintDialog pour permettre à l'utilisateur de sélectionner une imprimante. Le problème est, les imprimantes locales sont affichés en tant que bien (avec XPS Document Writer). Si je peux énumérer les imprimantes réseau de moi-même, je peux vous en montrer un dialogue personnalisé avec juste ces imprimantes.
Merci!!
AvailablePrinterInfo est dans l'espace de noms?l'obtention d'Erreur le type ou Le nom d'espace de noms 'AvailablePrinterInfo' n'a pas pu être trouvée (vous manque une directive using ou une référence d'assembly
OriginalL'auteur Mark Carpenter | 2009-06-19
Vous devez vous connecter pour publier un commentaire.
trouvé ce code ici
Mise à jour:
"Cette fonction API peut énumérer toutes les ressources du réseau, y compris les serveurs, stations de travail, imprimantes, les actions, le répertoire distant etc."
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=741&lngWId=10
essayez de cet article : planet-source-code.com/vb/scripts/... "Cette fonction API peut énumérer toutes les ressources du réseau, y compris les serveurs, stations de travail, imprimantes, les actions, le répertoire distant etc." J'espère que cela aide, merci
nulle exception de la dernière instruction.
OriginalL'auteur Andrija Cacanovic
LocalPrintServer.DefaultPrintQueue
PrinterSettings.InstalledPrinters
\\
est une imprimante réseau - donc obtenir la file d'attente avecnew PrintServer("\\UNCPATH").GetPrintQueue("QueueName")
\\
est une imprimante locale afin de l'obtenir avecLocalPrintServer.GetQueue("Name")
FullName
de la propriété.Remarque: une imprimante réseau peut être la valeur par défaut de l'imprimante à partir de
LocalPrintServer.DefaultPrintQueue
, mais apparaissent pas dansLocalPrintServer.GetPrintQueues()
OriginalL'auteur Simon_Weaver
à utiliser le nouveau Système.L'impression de l'API
awe: essayez la mise à jour du code
Merci, cela a fonctionné parfaitement pour ce que j'ai besoin de +1
OriginalL'auteur Simon
Dans un autre post(https://stackoverflow.com/a/30758129/6513653) relationed à celui-ci, Scott Chamberlain a dit "je ne crois pas qu'il n'y a rien .NET qui peut faire cela, vous aurez besoin de faire un appel des indigènes". Après avoir essayer tous les possibles .NET de ressources, je pense qu'il est de droite.
Donc, j'ai commencé à étudier comment AJOUTER de la boîte de dialogue IMPRIMANTE n'votre recherche. À l'aide de Wireshark, j'ai découvert que l'AJOUT d'IMPRIMANTE envoyer au moins deux types de forfaits pour tous les hôtes du réseau local: deux http/xml demande à 3911 port et trois requêtes SNMP.
La première requête SNMP est un get-next 1.3.6.1.2.1.43, qui est à l'Imprimante MIB. Le second, est un 1.3.6.1.4.1.2699.1.2.1.2.1.1.3 qui est pmPrinterIEEE1284DeviceId à partir de l'IMPRIMANTE-PORT-MONITEUR-MIB. C'est le plus d'intérêt, car c'est à partir d'AJOUT d'IMPRIMANTE de prendre le nom de l'imprimante. La troisième est une 1.3.6.1.2.1.1.1.0, qui est sysDescr de SNMP MIB-2 du Système.
Je crois que la deuxième requête SNMP suffit de trouver la plupart des imprimantes réseau dans le réseau local, j'ai donc fait ce code. Il travaille pour une Application Windows Form et il dépend de SnmpSharpNet.
Edit: je suis en utilisant ARP Ping au lieu Ping normale à la recherche active d'hôtes dans le réseau. Lien pour un exemple de projet: ListNetworks Projet C#
OriginalL'auteur ViniCoder
PrinterSettiings.InstalledPrinters
devrait vous donner la collection que vous souhaitezOriginalL'auteur Robert