কম্পিউটারে সমস্ত প্রিন্টারের তালিকা কীভাবে পাবেন


99

কম্পিউটারে সংযুক্ত সমস্ত প্রিন্টারের তালিকা পাওয়া দরকার?

আমি কীভাবে এটি সি #, উইনফর্মগুলিতে করতে পারি?

উত্তর:



57

আপনার যদি কেবল প্রিন্টারের নাম বাদে আরও তথ্যের প্রয়োজন হয় তবে আপনি System.Managementএগুলি জিজ্ঞাসা করতে API ব্যবহার করতে পারেন :

var printerQuery = new ManagementObjectSearcher("SELECT * from Win32_Printer");
foreach (var printer in printerQuery.Get())
{
    var name = printer.GetPropertyValue("Name");
    var status = printer.GetPropertyValue("Status");
    var isDefault = printer.GetPropertyValue("Default");
    var isNetworkPrinter = printer.GetPropertyValue("Network");

    Console.WriteLine("{0} (Status: {1}, Default: {2}, Network: {3}", 
                name, status, isDefault, isNetworkPrinter);
}

22

স্থিতিশীল সিস্টেম.ড্রেইং.প্রিন্টিং.প্রিন্টারসেটিংস.ইনস্টলযুক্তপ্রিন্টরের সম্পত্তি দেখুন।

এটি সিস্টেমে ইনস্টল করা সমস্ত প্রিন্টারের নামের একটি তালিকা।


এমএসডিএন লিঙ্কের জন্য আপনাকে ধন্যবাদ!
পলস্ম 4

8

এএসপি.এনইটিতে নেটওয়ার্ক এবং স্থানীয় মুদ্রক তালিকা পান

এই পদ্ধতিটিতে উইন্ডোজ ম্যানেজমেন্ট ইনস্ট্রুমেন্টেশন বা ডাব্লুএমআই ইন্টারফেস ব্যবহার করা হয়। এটি একটি প্রযুক্তি যা উইন্ডোজ অপারেটিং সিস্টেমে চলমান বিভিন্ন সিস্টেম (হার্ডওয়্যার) সম্পর্কিত তথ্য পেতে ব্যবহৃত হয়।

private void GetAllPrinterList()
        {
            ManagementScope objScope = new ManagementScope(ManagementPath.DefaultPath); //For the local Access
            objScope.Connect();

            SelectQuery selectQuery = new SelectQuery();
            selectQuery.QueryString = "Select * from win32_Printer";
            ManagementObjectSearcher MOS = new ManagementObjectSearcher(objScope, selectQuery);
            ManagementObjectCollection MOC = MOS.Get();
            foreach (ManagementObject mo in MOC)
            {
                lstPrinterList.Items.Add(mo["Name"].ToString());
            }
        }

উত্স এবং অ্যাপ্লিকেশন ডেমো ডাউনলোড করতে এখানে ক্লিক করুন

অ্যাপ্লিকেশনের ডেমো যা নেটওয়ার্ক এবং স্থানীয় প্রিন্টার তালিকাভুক্ত করে

এখানে চিত্র বর্ণনা লিখুন


এএসপি.নেটেও কি আপনার ডেমো?
এএএ

5

আপনি স্থানীয় মুদ্রণ সার্ভার ক্লাসও ব্যবহার করতে পারেন। দেখুন: সিস্টেম.প্রিন্টিং.লোকালাপ্রিন্ট সার্ভার

    public List<string>  InstalledPrinters
    {
        get
        {
            return (from PrintQueue printer in new LocalPrintServer().GetPrintQueues(new[] { EnumeratedPrintQueueTypes.Local,
                EnumeratedPrintQueueTypes.Connections }).ToList()
                    select printer.Name).ToList(); 
        } 
    }

ডক্সে যেমন বলা আছে: সিস্টেমের মধ্যে ক্লাসগুলি। উইন্ডোজ পরিষেবা বা এএসপি.এনইটি অ্যাপ্লিকেশন বা পরিষেবাদির মধ্যে প্রিন্টিং নেমস্পেস ব্যবহারের জন্য সমর্থিত নয়।


আপনি কোডের সাথে যেতে একটি ব্যাখ্যা যোগ করতে পারেন?
jhpratt

এটি একটি খুব আকর্ষণীয় উত্তর। আপনার যদি কেবল নামগুলির প্রয়োজন হয় তবে গৃহীত উত্তরটি সঠিক। আপনার যদি অন্য ডেটার দরকার হয়, উইন 32_প্রিন্টারে কোয়েরিটি ব্যবহার করা এই কলটি করার চেয়ে ধীর
নোমান_1

0

আপনি যদি এমভিসি সি # এর সাথে কাজ করছেন তবে ড্রপডাউনগুলির জন্য প্রিন্টার এবং সিরিয়াল পোর্টগুলির সাথে ডিল করার উপায় এটি।

using System.Collections.Generic;
using System.Linq;
using System.IO.Ports;
using System.Drawing.Printing;

    public class Miclass
    {
        private void AllViews()
        {
            List<PortClass> ports = new List<PortClass>();
            List<Printersclass> Printersfor = new List<Printersclass>();
            string[] portnames = SerialPort.GetPortNames();
            /*PORTS*/
            for (int i = 0; i < portnames.Count(); i++)
            {
                ports.Add(new PortClass() { Name = portnames[i].Trim(), Desc = portnames[i].Trim() });
            }
            /*PRINTER*/
            for (int i = 0; i < PrinterSettings.InstalledPrinters.Count; i++)
            {
                Printersfor.Add(new Printersclass() { Name = PrinterSettings.InstalledPrinters[i].Trim(), Desc = PrinterSettings.InstalledPrinters[i].Trim() });
            }
        }
    }
    public class PortClass
    {
        public string Name { get; set; }
        public string Desc { get; set; }

        public override string ToString()
        {
            return string.Format("{0} ({1})", Name, Desc);
        }
    }
    public class Printersclass
    {
        public string Name { get; set; }
        public string Desc { get; set; }

        public override string ToString()
        {
            return string.Format("{0} ({1})", Name, Desc);
        }
    }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.