0

我写了代码来获取默认打印机名称和所有打印机名称我安装在我的集合中。但我想动态更改我的默认打印机名称。

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);
        }
    }

它的输出将是这样的。 结果

在上图中,默认打印机名称为“CutePDF Writer”。但我想将“SnagiIt 8”更改为默认打印机。我该怎么做。

4

1 回答 1

2

试试这个它会帮助你。

  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() });
                    }
                }
于 2012-06-22T09:29:33.990 回答