Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Change Default Printer within WPF Application

Tags:

c#

printing

wpf

wmi

I'm looking for the best approach to change the default printer within a WPF application. Here are the steps the we're hoping the application can do.

  1. Select a location from a drop down which is mapped to a printer name.
  2. Change the default printer to the mapped name.
  3. Launch IE and point to SSRS report.
  4. User will then print report from IE, which will use the new default printer

Step two is what I'm looking for assistance with.

Is this a use case for WMI? If so, any resources on the subject would be a huge help.

Thanks!

like image 616
Nick Heidke Avatar asked Feb 24 '23 20:02

Nick Heidke


1 Answers

use this:

var query = new ManagementObjectSearcher("SELECT * FROM Win32_Printer"); 
var printers = query.Get();
string printerName = "Printer to set as default" ;
foreach(ManagementObject printer in printers) 
{ 
   if (printer["name"].ToString() == printerName.ToString()) 
   { 
      printer.InvokeMethod("SetDefaultPrinter", new object[] { printerName }); 
   } 
}
like image 57
Navid Rahmani Avatar answered Mar 02 '23 16:03

Navid Rahmani