using System.Management; //需要添加引用System.Management
public void GetAllPrinter(ListBox listBox1) //获取全部打印机
{
PrintDocument prtdoc = new PrintDocument();
string strDefaultPrinter = prtdoc.PrinterSettings.PrinterName;//获取默认的打印机名
// 在列表框中列出所有的打印机
foreach (String strPrinter in PrinterSettings.InstalledPrinters)
{
listBox1.Items.Add(strPrinter);
if (strPrinter == strDefaultPrinter)//把默认打印机设为缺省值
{
listBox1.SelectedIndex = listBox1.Items.IndexOf(strPrinter);
}
}
}
public void SetDefaultPrinter(string PrintName) //设置缺省打印机
{
try
{
string _classname = "SELECT * FROM Win32_Printer";
ManagementObjectSearcher query = new ManagementObjectSearcher(_classname);
ManagementObjectCollection queryCollection = query.Get();
foreach (ManagementObject mo in queryCollection)
{
if (string.Compare(mo["Name"].ToString(), PrintName, true) == 0)
{
mo.InvokeMethod("SetDefaultPrinter", null);
break;
}
}
}
catch { }
}