C# 以编程方式设置打印机共享名

C# 以编程方式设置打印机共享名,c#,printing,wmi,C#,Printing,Wmi,我已经能够使用System.Management程序集中的ManagementObject成功重命名打印机 string query = String.Format("SELECT * FROM Win32_Printer WHERE Name = '{0}'", printerName); ManagementObjectSearcher searcher = new ManagementObjectSearcher(query); ManagementObjectCollection col

我已经能够使用System.Management程序集中的ManagementObject成功重命名打印机

string query = String.Format("SELECT * FROM Win32_Printer WHERE Name = '{0}'", printerName);
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
ManagementObjectCollection collection = searcher.Get();
ManagementObject printer = collection.Cast<ManagementObject>().ElementAt(0);
printer.InvokeMethod("RenamePrinter", new object[] { newName });
string query=string.Format(“从Win32_打印机中选择*,其中Name='{0}'”,printerName);
ManagementObjectSearcher search=新的ManagementObjectSearcher(查询);
ManagementObjectCollection集合=searcher.Get();
ManagementObject打印机=collection.Cast().ElementAt(0);
InvokeMethod(“RenamePrinter”,新对象[]{newName});
是否有类似于设置打印机共享名的功能

以下是我试图更改的属性的屏幕截图:


事实证明,我可以直接更改ManagementObject的属性。我就是这样做的:

string query = String.Format("SELECT * FROM Win32_Printer WHERE Name = '{0}'", printerName);
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
ManagementObjectCollection collection = searcher.Get();
ManagementObject printer = collection.Cast<ManagementObject>().ElementAt(0);

// The part that changes the printer share name
printer.Properties["ShareName"].Value = newName;
printer.Put();
string query=string.Format(“从Win32_打印机中选择*,其中Name='{0}'”,printerName);
ManagementObjectSearcher search=新的ManagementObjectSearcher(查询);
ManagementObjectCollection集合=searcher.Get();
ManagementObject打印机=collection.Cast().ElementAt(0);
//更改打印机共享名的部分
printer.Properties[“ShareName”]。Value=newName;
printer.Put();