InstallPrintQueue:如何创建新端口? (.net,c#)

发布于 2024-07-13 07:52:16 字数 544 浏览 5 评论 0原文

我在这里与 .net 框架的 System.Printing 命名空间进行斗争。 我一直认为微软管理我的打印服务器的所有工具中的一个有线问题是它们缺乏端口和驱动程序管理功能。

所以我被困在这里,有一段有效的代码:

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

它确实使用我指定的驱动程序在远程服务器上为我创建了一个队列,但驱动程序应该已经存在于我可以使用的服务器上,但我未能找到一种方法在我的打印服务器上创建新的 TCP/IP 端口,因此以这种方式安装新的打印队列可能是有用的。 我不明白为什么我只能使用现有端口安装新队列。 有点让我失望。 如果有人知道如何创建端口和队列,我想看看如何。

I'm fighting here with System.Printing namespace of .net framework.
And what i always saw as a wired thing in all the tools by MS to manage my printservers is they lack Port and Driver managing functionality.

So I'm stuck here with a piece of code that works:

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

And it does create a Queue for me on remote server, using the driver i specify, but driver should be there on server already which i can live with, but i failed to find a way to create new TCP/IP port on my print server, so installing new print queues this way can be something usable. i don't see why am i allowed to only install new queues with existing ports. kinda fails me. If somebody knows how to create a port along with a queue, i'd like to see how.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

送舟行 2024-07-20 07:52:16

啊..当没有希望时 - 做更多

简短的回答 - “你不能使用 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_

gah.. and when there is no hope - do research more

short answer - "you can't add a port using system.printing"

long answer - use wmi

vb sample follows:

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_
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文