4
我正在寻找最佳方法来更改WPF应用程序中的默认打印机。以下是我们希望应用程序可以执行的步骤。在WPF应用程序中更改默认打印机
- 从映射到打印机名称的下拉列表中选择一个位置。
- 将默认打印机更改为映射名称。
- 启动IE并指向SSRS报告。然后
- 用户从IE打印报告,该报告将使用新的默认打印机
第二步就是我要找的援助。
这是WMI的用例吗?如果是这样,关于这个问题的任何资源将是一个巨大的帮助。
谢谢!
我正在寻找最佳方法来更改WPF应用程序中的默认打印机。以下是我们希望应用程序可以执行的步骤。在WPF应用程序中更改默认打印机
第二步就是我要找的援助。
这是WMI的用例吗?如果是这样,关于这个问题的任何资源将是一个巨大的帮助。
谢谢!
使用这样的:
var query = new ManagementObjectSearcher("SELECT * FROM Win32_Printer");
var printers = query.Get();
string printerName = "Printer to set as default" ;
foreach(ManagementObject printer in printers)
{
if (printer["name"].ToString() == printerName.ToString())
{
printer.InvokeMethod("SetDefaultPrinter", new object[] { printerName });
}
}
我加入System.Management和System.Management.Instrumentation基准,并增加了进口 '使用System.Management;'。不过,我仍然在'currentObject'和'InvokeMethod'下面看到错误行。我猜测'currentObject'实际上需要'打印机',但是这仍然不能解决'InvokeMethod'问题。 – NickHeidke
对不起我错 –
我越来越想打电话时,InvokeMethod打印机对象上的错误: “System.Management.ManagementBaseObject”不包含“的InvokeMethod”,没有扩展方法的定义“的InvokeMethod”接受的第一个参数可以找到类型'System.Management.ManagementBaseObject'(你是否缺少使用指令或程序集引用?) – NickHeidke