C#中如何设置系统的默认打印机

亮灯了 2007-12-12 02:07:20
private ManagementObjectSearcher query;
private 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;
}
}
在windows2000下出错,提示没有任何类别中执行这个方法,不知还有其他方法没有可以设置系统默认的打印机
...全文
696 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ul990867 2010-12-08
  • 打赏
  • 举报
回复
顶顶...
王集鹄 2007-12-12
  • 打赏
  • 举报
回复
XP测试可以,不知道2K如何:
using System.Runtime.InteropServices;

[DllImport("winspool.drv")]
public static extern bool SetDefaultPrinter(string Name);

private void button1_Click(object sender, EventArgs e)
{
SetDefaultPrinter("My Printer");
}
lvxianda 2007-12-12
  • 打赏
  • 举报
回复
有打印预览这个类操作下
或者打印的过程中调用打印机名
向word.print()中就打印机设置这个参数
北京的雾霾天 2007-12-12
  • 打赏
  • 举报
回复
觉得设置默认打印机的事应该是最终用户的事,没有必要使用代码来选择。如果用户想改变默认的打印机,直接去控制面板找到打印机设置一下就OK了,相当的不麻烦。如果本着一切都用C#来实现,不但增加了难度,而且改忘记了客户都是“Windows用户”了。那控制面板不是成了摆设!
lovvver 2007-12-12
  • 打赏
  • 举报
回复
http://www.hdwong.com/articles.php?arts_id=11

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧