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 に答える