반응형
* C# API 를 이용한 제어판 기본 프린터(Default Printer) 변경 예제...
전체 소스 코드
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
https://kdsoft-zeros.tistory.com/171
반응형
'C# Programming' 카테고리의 다른 글
[C#] DateTimeFormat - 전역 설정 (0) | 2020.03.25 |
---|---|
[C#] 설치된 닷넷프레임워크 버전 리스트 조회 (0) | 2020.03.23 |
[C#] [WMI] 실시간 메모리 사용량 체크 (Memory Check) - Progressbar (0) | 2020.03.17 |
[C#] 제어판 프린터(Printer) 목록 불러오기 (0) | 2020.03.13 |
[C#] [API] Mouse Cursor Move And AutoClick Event (0) | 2020.03.11 |