下面是我们正在努力做的事情:
我们要采取一切客户打印他们的计算机上(我们所有的客户正在运行POS系统和使用Windows XP专用),并把它发送给我们一个不显眼的方式,我们已经决定这样做,最好的办法是创造交流#应用程序,向我们发送的假脱机文件,我们可以很容易地已经解析。
然而,这需要设置“保留所有打印的文档”为真。 我们要做到这一点在我们的应用程序,而不是手动,原因如下:我们的客户的一些(数百)是,由于缺乏一个更好的词,哑。 我们不希望他们周围迫使乱在控制面板......我们的技术支持人员是够忙的,因为它是。
这里就是我碰到一个问题:
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;
}
}
}
这应该,据我可以从几个小时WMI的研究来讲,每个打印机的KeepPrintedJobs属性设置为true ...但它不工作。 一旦foreach循环结束后,KeepPrintedJobs被设置为false。 我们宁愿在注册表各地使用WMI,而不是一塌糊涂,但我不能花永远努力使这项工作。 什么任何想法缺少?