• C# winForm 修改默认打印机(效果不太好,每次修改都会有一个系统的打印弹窗(win10))


    1.界面:1个按钮+1个combobox;

    2.开头阴影

    using System.Runtime.InteropServices;

    3.代码

            private void Form1_Load(object sender, EventArgs e)
            {
                InitprinterComboBox(); //初始化打印机下拉列表选项
            } 
            private void InitprinterComboBox()
            {// 初始化打印机列表
                PrintDocument printDocument = new PrintDocument();
                string defaultPrinter = printDocument.PrinterSettings.PrinterName;//获取默认打印机名
    
                foreach (string printer in PrinterSettings.InstalledPrinters)
                {//获取所有打印机名称
                    combobox1.Items.Add(printer);
                    if (printer == defaultPrinter)
                    {//默认打印机设置在列表的第一项
                        combobox1.SelectedIndex = combobox1.Items.IndexOf(printer);
                    }
                }
            }
            private void button1_Click(object sender, EventArgs e)
            {//设置默认打印机按钮
                try
                {
                    if (Externs.SetDefaultPrinter(cmbPrinter.SelectedItem.ToString())) 
                    {//设置默认打印机
                        MessageBox.Show(cmbPrinter.SelectedItem.ToString() + "设置为默认打印机成功!");
                    }
                }
                catch(Exception ex)
                {
                    MessageBox.Show("设置为默认打印机失败: "+ex.Message);
                }
            }
            class Externs
            {//调用win api将指定名称的打印机设置为默认打印机
                [DllImport("winspool.drv")]//引入
                public static extern bool SetDefaultPrinter(String printerName);//定义外部库函数
            }
  • 相关阅读:
    Git常用命令集合
    kubeadm搭建高可用集群-版本1.18.2
    springboot实现事务管理
    定时任务突然中止,告警:Thread starvation or clock leap detected
    Class版本号和Java版本对应关系
    vue开发环境配置
    CentOS配置jar应用程序开机启动的方法
    jvm运行时数据区之程序计数器
    JVM常见面试题及答案
    MYSQL的修改表结构SQL语句
  • 原文地址:https://www.cnblogs.com/nb08611033/p/8973172.html
Copyright © 2020-2023  润新知