Reputation: 4928
I wrote to code to get default Printer name and all Printer name What i installed in my set.But i want to change my default Printer in name dynamically.
using System.Drawing.Printing;
public MainWindow()
{
this.InitializeComponent();
PrinterSettings settings = new PrinterSettings();
string DefultPrinterName= settings.PrinterName;
foreach (string item in PrinterSettings.InstalledPrinters)
{
com_Printers.Items.Add(item);
}
}
It's Output will be like this.
In above figure the default printer name is "CutePDF Writer".But i want to change "SnagiIt 8" as Default Printer. What should i do for that.
Upvotes: 0
Views: 3334
Reputation: 2026
Try this it will help you.
var query = new ManagementObjectSearcher("SELECT * FROM Win32_Printer");
var printers = query.Get();
foreach (ManagementObject printer in printers)
{
if (printer["name"].ToString() == combox_pinter.SelectedItem.ToString())
{
printer.InvokeMethod("SetDefaultPrinter", new object[] { combox_pinter.SelectedItem.ToString() });
}
}
Upvotes: 2