zoukankan      html  css  js  c++  java
  • C#获取本地打印机列表,并将指定打印机设置为默认打印机

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    
    namespace Printers
    {
        /// <summary>
        /// Interaction logic for Window1.xaml
        /// </summary>
        public partial class Window1 : Window
        {
            public Window1()
            {
                InitializeComponent();
                InitprinterComboBox(); //初始化打印机下拉列表选项
            }
            private void InitprinterComboBox()
            {
                List<String> list = LocalPrinter.GetLocalPrinters(); //获得系统中的打印机列表
                foreach (String s in list)
                {
                    printerComboBox.Items.Add(s); //将打印机名称添加到下拉框中
                }
            }
    
            private void printButton_Click(object sender, RoutedEventArgs e)
            {
                if (printerComboBox.SelectedItem != null) //判断是否有选中值
                {
                    if (Externs.SetDefaultPrinter(printerComboBox.SelectedItem.ToString())) //设置默认打印机
                    {
                        MessageBox.Show(printerComboBox.SelectedItem.ToString() + "设置为默认打印机成功!");
                    }
                    else
                    {
                        MessageBox.Show(printerComboBox.SelectedItem.ToString() + "设置为默认打印机失败!");
                    }
                }
            }
        }
    }

    LocalPrinter.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Drawing.Printing;
    using System.Runtime.InteropServices;
    
    namespace Printers
    {
        class LocalPrinter
        {
            private static PrintDocument fPrintDocument = new PrintDocument();
            //获取本机默认打印机名称
            public static String DefaultPrinter()
            {
                return fPrintDocument.PrinterSettings.PrinterName;
            }
            public static List<String> GetLocalPrinters()
            {
                List<String> fPrinters = new List<String>();
                fPrinters.Add(DefaultPrinter()); //默认打印机始终出现在列表的第一项
                foreach (String fPrinterName in PrinterSettings.InstalledPrinters)
                {
                    if (!fPrinters.Contains(fPrinterName))
                    {
                        fPrinters.Add(fPrinterName);
                    }
                }
                return fPrinters;
            }
        }
    }

    Externs.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Runtime.InteropServices;
    
    namespace Printers
    {
        class Externs
        {
            [DllImport("winspool.drv")]
            public static extern bool SetDefaultPrinter(String Name); //调用win api将指定名称的打印机设置为默认打印机
        }
    }
  • 相关阅读:
    BETA 版冲刺前准备
    Alpha 事后诸葛亮(团队)
    Learn Docker(一)—软件安装与常规操作
    Alpha 答辩总结
    Alpha 冲刺 (10/10)
    Alpha 冲刺 (9/10)
    Alpha 冲刺 (8/10)
    Alpha 冲刺 (7/10)
    Alpha 冲刺 (6/10)
    团队作业-随堂小测(同学录)
  • 原文地址:https://www.cnblogs.com/zeroone/p/3306179.html
Copyright © 2011-2022 走看看