• 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() + "设置为默认打印机失败!");
                    }
                }
            }
        }
    }
    

      

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

      

    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将指定名称的打印机设置为默认打印机
        }
    }
    

      

  • 相关阅读:
    网络流24题
    数据结构(脑洞题,BIT):COGS 2394. 比赛
    字符串(后缀数组||SAM):NOI2015 品酒大会
    数据结构(二维线段树,差分): NOI2012 魔幻棋盘
    HNOI 2016 省队集训日记
    图论(网络流):SCOI 2007 修车
    数据结构(虚树,动态规划):HNOI 2014 世界树
    线性代数(高斯消元):JSOI2008 球形空间产生器sphere
    组合数学(Pólya计数原理):UvaOJ 10601 Cubes
    数学计数原理(Pólya,高精度):SGU 294 He's Circles
  • 原文地址:https://www.cnblogs.com/forever2698/p/5408491.html
Copyright © 2020-2023  润新知