C# 未选择共享打印机作为默认打印机
我面临一个问题-我想设置默认打印机。已安装的打印机工作正常,但未将共享打印机设置为默认打印机。下面是我的代码:C# 未选择共享打印机作为默认打印机,c#,asp.net-mvc,printers,C#,Asp.net Mvc,Printers,我面临一个问题-我想设置默认打印机。已安装的打印机工作正常,但未将共享打印机设置为默认打印机。下面是我的代码: public class DefaultPrinter { [DllImport("winspool.drv", CharSet = CharSet.Auto, SetLastError = true)] public static extern bool SetDefaultPrinter(string Name); } DefaultPrinter.SetDefa
public class DefaultPrinter
{
[DllImport("winspool.drv", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool SetDefaultPrinter(string Name);
}
DefaultPrinter.SetDefaultPrinter("WH");
首先,您甚至不检查返回值,因此您不知道它是否有效。第二,设置默认打印机对每个用户有效。但Web应用程序在受限帐户下运行。该帐户可能没有该权限,或者更改成功,但没有其他帐户会注意到您为什么要尝试从web应用程序执行此操作?您已经可以远程管理打印机(如通过Powershell)。您可以使用类在本地或远程管理打印机。如果要打印到特定的打印机,则必须发布所使用的代码。这是一个web应用程序,但在本地使用,因此我使用Crystal Report打印ReportDocument rd=new ReportDocument();rd.Load(路径);rd.SetDataSource(dtReport);rd.PrintTopPrinter(2,正确,1,1);rd.Refresh();rd.Close();为什么不设置PrintOptions.PrinterName呢?如果这不起作用,设置默认打印机无论如何都不起作用,对于远程打印机连接,名称格式为\\server\printername。您传递的是本地名称