using System.Management;
string PrinterName = "HP LaserJet 6L";
ManagementObjectSearcher query;
ManagementObjectCollection queryCollection;
string _classname="SELECT * FROM Win32_Printer";
query=new ManagementObjectSearcher(_classname); queryCollection = query.Get();
foreach (ManagementObject mo in queryCollection)
{ if (string.Compare(mo["Name"].ToString(),PrinterName,true)==0)
{
mo.InvokeMethod("SetDefaultPrinter",null);
break;
}
}