Как изменить имя порта принтера с помощью c # - PullRequest
3 голосов
/ 29 августа 2011

Я отсканировал ТАК и не увидел этот вопрос опубликован, извините, если я пропустил его, и это повторение.

Я могу найти сетевой принтер в PrinterSettings.InstalledPrinters и извлечь свойство «PortName» из printer.Properties, но просто установить свойство не работает. Я пытался перебрать принудительное изменение для этого имени порта принтера в реестре, и это тоже не сработало (хотя я действительно не думал, что это будет, но пришлось попробовать).

У меня новый порт реализован с помощью загрузки файла reg, поэтому мне не нужно создавать порт. (Кстати, я знаю, что порт работает, потому что установка его в свойствах принтера работает нормально).

Ваша помощь приветствуется.

Спасибо

1 Ответ

3 голосов
/ 30 августа 2011

Вы можете использовать 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.
}

Надеюсь, это поможет.

...