Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 未选择共享打印机作为默认打印机_C#_Asp.net Mvc_Printers - Fatal编程技术网

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。您传递的是本地名称