InstallPrintQueue: как создать новый порт? (.Net, C #) - PullRequest
0 голосов
/ 04 февраля 2009

Я борюсь здесь с пространством имен System.Printing .net framework. И то, что я всегда видел во всех инструментах MS для управления моими серверами печати, - это отсутствие функций управления портами и драйверами.

Так что я застрял здесь с фрагментом кода, который работает:

 PrintServer _ps = new PrintServer(PServer,
PrintSystemDesiredAccess.AdministrateServer );
 _ps.InstallPrintQueue(QToCreate.Name, QToCreate.Driver,new string [] {"LPT1:"}, "winprint", PrintQueueAttributes.None); 

И он создает очередь для меня на удаленном сервере, используя указанный мной драйвер, но драйвер уже должен быть на сервере, с которым я могу жить, но мне не удалось найти способ создания нового порта TCP / IP мой сервер печати, так что установка новых очередей печати таким способом может быть чем-то полезным. я не понимаю, почему мне разрешено устанавливать только новые очереди с существующими портами. вроде как меня подвела. Если кто-то знает, как создать порт вместе с очередью, я хотел бы посмотреть, как.

1 Ответ

3 голосов
/ 04 февраля 2009

га ... а когда нет надежды - исследуй больше

краткий ответ - "вы не можете добавить порт с помощью system.printing"

длинный ответ - используйте wmi

VB образец следует:

Set objWMIService = GetObject("winmgmts:")
Set objNewPort = objWMIService.Get _
    ("Win32_TCPIPPrinterPort").SpawnInstance_
' Use IP of Printer or Machine sharing printer
objNewPort.Name = "IP_192.168.1.1"
objNewPort.Protocol = 1
objNewPort.HostAddress = "192.168.1.1"
' Enter Port number you would like to use
objNewPort.PortNumber = "9999"
objNewPort.SNMPEnabled = False
objNewPort.Put_
...