C#設定預設印表機

來源:互聯網
上載者:User

標籤:pac   cti   local   ring   obj   手動   etl   獲得   get   

開發中經常會遇到需要用到印表機的問題,那麼我們現在來一個Demo修改系統預設印表機。先看運行效果吧。(主要為了展示代碼和功能,介面就隨便拖拉了一個,比較醜,不要介意。)

介面構建非常簡單,首先建立一個Form表單,拉一個comboBox控制項和一個Button然後就可以了。

接下來我們看下代碼。

首先是載入本機印表機的類LocalPrinter

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Drawing.Printing;namespace WindowsFormsApplication1{   public 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;        }    }}

然後是調用windows  印表機操作api的類Externs

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Runtime.InteropServices; //必須引入這個命名空間namespace WindowsFormsApplication1{    public class Externs    {        [DllImport("winspool.drv")]        public static extern bool SetDefaultPrinter(String Name); //調用win api將指定名稱的印表機設定為預設印表機    }}

然後就是表單的Form的代碼了,其實就是一個按鈕點擊事件和初始化的操作

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsApplication1{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();            InitprinterComboBox(); //載入資料        }        /// <summary>        /// 初始化ComboBox資料        /// </summary>        private void InitprinterComboBox()        {            List<String> list = LocalPrinter.GetLocalPrinters(); //獲得系統中的印表機列表            foreach (String s in list)            {                printerComboBox.Items.Add(s); //將印表機名稱添加到下拉框中            }        }        private void button1_Click(object sender, EventArgs e)        {            if (printerComboBox.SelectedItem != null) //判斷是否有選中值            {                if (Externs.SetDefaultPrinter(printerComboBox.SelectedItem.ToString())) //設定預設印表機                {                    MessageBox.Show(printerComboBox.SelectedItem.ToString() + "設定為預設印表機成功!");                }                else                {                    MessageBox.Show(printerComboBox.SelectedItem.ToString() + "設定為預設印表機失敗!");                }            }        }    }}

這樣,運行就可以設定預設印表機了。

那麼,如何測試是否成功呢?很簡單,開啟控制台,在開啟印表機的介面,然後運行程式,設定預設印表機,看看是否會改變即可。筆者測試的結果是可以得,但是如果電腦本身沒有設定預設印表機,那麼設定也會成功,但是那個綠色的預設鉤沒有顯示出來。這時候可以手動設定一下預設,然後再 通過軟體修改就會顯示那個綠色的預設鉤了。

 

C#設定預設印表機

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.