我使用以下代码更改打印机的“端口”属性。问题是它的执行时间超过了一分钟。
有办法加快速度吗?
我是否可以实例化管理对象,而不是使用WMI对象的所有属性?更重要的是,如何只更新1个属性?
也许我应该在不使用搜索器的情况下实例化ManagementObject?
ManagementPath mPath = new ManagementPath();
mPath.Server = Server.TrimStart(new char[] {'\\'});
mPath.NamespacePath = "root\\cimv2";
ManagementScope mScope = new ManagementScope();
mScope.Options.Impersonation = ImpersonationLevel.Impersonate;
mScope.Path = mPath;
SelectQuery sQ = new SelectQuery();
sQ.ClassName = "Win32_Printer";
sQ.Condition = string.Format("Name=\"{0}\"", Name);
ManagementObjectSearcher s = new ManagementObjectSearcher(mScope, sQ);
foreach (ManagementObject service in s.Get())
{
string oldname = service.Properties["PortName"].Value.ToString();
service.Properties["PortName"].Value = PortName;
service.Put( );
this.Port = PortName;
return true;
}