Как изменить имя порта принтера с помощью C#
Я отсканировал ТАК и не видел этот вопрос, извините, если я пропустил его, и это повторение.
Я могу найти сетевой принтер в PrinterSettings.InstalledPrinters и извлечь свойство "PortName" из printer.Properties, но просто установка свойства не работает. Я пытался перебить изменение этого имени порта принтера в реестре, но это тоже не сработало (хотя я действительно не думал, что это произойдет, но мне пришлось попробовать).
У меня новый порт реализован с помощью загрузки файла reg, поэтому не нужно создавать порт. (Кстати, я знаю, что порт работает, потому что установка его в свойствах принтера работает нормально).
Ваша помощь приветствуется.
Спасибо
1 ответ
Вы можете использовать WMI, чтобы установить имя порта для вашего принтера. Вот пример:
ManagementScope scope = new ManagementScope(@"\root\cimv2");
scope.Connect();
// Insert your printer name in the WHERE clause...
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Printer WHERE Name='PrinterName");
foreach (ManagementObject printer in searcher.Get())
{
printer["PortName"]="LPT1:";
printer.Put(); // Important: Call put to save the settings.
}
Надеюсь это поможет.