[C#][VB.NET]取得安裝於電腦上的所有印表機名稱與預設印表機名稱
1. 問題描述
如何取得安裝於電腦上的所有印表機名稱與預設印表機名稱
2. 方法
使用 System.Drawing.Printing 的兩個屬性
PrinterSettings.InstalledPrinters 屬性 : 取得安裝於電腦上的所有印表機名稱。
PrinterSettings.PrinterName 屬性 : 取得或設定要使用的印表機名稱。
C# 程式碼
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;
namespace wfPrint
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
PrintDocument printDoc = new PrintDocument();
String sDefaultPrinter = printDoc.PrinterSettings.PrinterName; // 取得預設的印表機名稱
// 取得安裝於電腦上的所有印表機名稱,加入 ListBox (Name : lbInstalledPrinters) 中
foreach (String strPrinter in PrinterSettings.InstalledPrinters)
{
this.lbInstalledPrinters.Items.Add(strPrinter);
}
// ListBox (Name : lbInstalledPrinters) 選擇在預設印表機
this.lbInstalledPrinters.SelectedIndex = this.lbInstalledPrinters.FindString(sDefaultPrinter);
}
}
}
VB.NET 程式碼
Imports System.Drawing.Printing
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim printDoc As New PrintDocument()
Dim sDefaultPrinter As String = printDoc.PrinterSettings.PrinterName '取得預設的印表機名稱
'取得安裝於電腦上的所有印表機名稱,加入 ListBox (Name : lbInstalledPrinters) 中
For Each strPrinter As String In PrinterSettings.InstalledPrinters
Me.lbInstalledPrinters.Items.Add(strPrinter)
Next
'ListBox (Name : lbInstalledPrinters) 選擇在預設印表機
Me.lbInstalledPrinters.SelectedIndex = Me.lbInstalledPrinters.FindString(sDefaultPrinter)
End Sub
End Class
3. 執行結果
4. 程式下載
[C#][VB.NET]取得安裝於電腦上的所有印表機名稱與預設印表機名稱.rar