반응형

* C# API 를 이용한 제어판 기본 프린터(Default Printer) 변경 예제...

 

Main

 

전체 소스 코드

Form1.cs

 

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;

using System.Drawing.Printing;
using System.Runtime.InteropServices;

namespace CSharp_PrinterList
{
    public partial class Form1 : Form
    {
        [DllImport("winspool.drv")]
        static extern bool SetDefaultPrinter(string name);


        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //프린터 목록 콜렉션 배열에 담기...
            System.Collections.ArrayList alList = new System.Collections.ArrayList(
                PrinterSettings.InstalledPrinters);

            //정렬
            alList.Sort();
            //리스트뷰 아이템 초기화
            listView1.Items.Clear();

            for (int iCount = 0; iCount < alList.Count; iCount++)
            {
                //프린터 목록 리스트 보여주기...
                ListViewItem lvi = new ListViewItem();
                lvi.Text = (iCount + 1).ToString();
                lvi.SubItems.Add(alList[iCount].ToString());

                //리스트뷰 아이템에 추가...
                listView1.Items.Add(lvi);
            }

        }

        private void listView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            //Select Printer
            lblSelectPrinter.Text = listView1.FocusedItem.SubItems[1].Text;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //Default Printer Set
            if (lblSelectPrinter.Text == "") return;

            if (SetDefaultPrinter(lblSelectPrinter.Text))
            {
                MessageBox.Show("Default Printer Set Success...", "확 인", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }
            else
            {
                MessageBox.Show("Default Printer Set Failed...", "확 인", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

        }
    }
}

 

* 예제 결과

 

 

위 그림은 기본 프린터 변경 전 모습으로 윈도우 시작 -> 제어판 -> 장치 및 프린터 로 가보게 되면 기본 프린터가 NesPDF 로 되어 있습니다. 

 

해당 리스트뷰에서 기본 프린터로 지정될 항목을 클릭 한 뒤 Default Printer Set 버튼을 클릭 하여 아래의 그림과 같이

변경 

 

https://kdsoft-zeros.tistory.com/166

 

[C#] 제어판 프린터(Printer) 목록 불러오기

* C# 제어판 프린터 (Printer) 목록 불러오기 예제... 전체 소스 코드 Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; usin..

kdsoft-zeros.tistory.com

 

https://kdsoft-zeros.tistory.com/171

 

[VBNET] [API] 제어판 기본 프린터(Default Printer) 변경

* VBNET API 이용한 제어판 기본 프린터 (Default Printer) 변경 하기 예제... 전체 소스 코드 Form1.vb Imports System.Collections Imports System.Drawing.Printing Public Class Form1 'API Declare Function..

kdsoft-zeros.tistory.com

 

반응형

+ Recent posts