2012-06-21 50 views
0

我写了代码以获取默认打印机名称和所有打印机名称我安装在我的set.But中,但我想动态更改我的默认打印机名称。如何在wpf中动态设置默认打印机

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

它的输出将是这样的。 Result

在上图中默认的打印机名称是“CutePDF Writer”。但我想将“SnagiIt 8”更改为默认打印机。我应该为此做些什么。

+1

使用这个例子中为你的目标 请点击此链接: http://stackoverflow.com/questions/971604/how-do-i-set-the-windows-default-printer-in-c – KF2

+0

你的意思是你想将组合框的选择改为最初的Snagit 8或更改操作系统的默认打印机设置? –

+0

我的意思是OS默认打印机设置。 –

回答

1

试试这个会帮助你。

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() }); 
        } 
       } 
相关问题