我试图使用以下代码修改每台打印机的“保持打印作业”属性:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Management;
namespace ConsolePrintpref
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Modify printer parameters");
ManagementScope scope = new ManagementScope("root\\CIMV2");
scope.Connect();
string searchQuery = "SELECT * FROM Win32_Printer";
ManagementObjectSearcher searchPrinters = new ManagementObjectSearcher(searchQuery);
ManagementObjectCollection printerCollection = searchPrinters.Get();
foreach (ManagementObject printer in printerCollection)
{
PropertyDataCollection printerProperties = printer.Properties;
foreach (PropertyData property in printerProperties)
{
if (property.Name == "KeepPrintedJobs")
{
printerProperties[property.Name].Value = true;
}
}
printer.Put(); //access denied
}
}
}
}但它引发错误:System.Management.ManagementException类型的未处理异常发生在System.Management.dll附加信息中:访问被拒绝
我在管理员帐户上,在WMImgmt中,它显示管理员有写权限。有什么东西我遗漏了吗?
发布于 2017-08-18 05:51:29
尝试以管理员身份运行Visual。
https://stackoverflow.com/questions/45749268
复制相似问题