2009-02-04 68 views
0

我在這裏與System.Printing命名空間的.net框架戰鬥。 而我一直將MS看作是所有工具中的有線事物來管理我的打印服務器的是他們缺乏端口和驅動程序管理功能。InstallPrintQueue:如何創建一個新的端口? (.net,c#)

所以我用了一段代碼,工程卡住位置:

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

而且它遠程服務器上創建一個隊列對我來說,我使用指定的驅動程序,但司機應該有對服務器已經是我可以生活的,但我沒有找到一種方法在我的打印服務器上創建新的TCP/IP端口,因此以這種方式安裝新的打印隊列可能是可用的。我不明白爲什麼我只允許用現有端口安裝新的隊列。有點失敗了我。如果有人知道如何創建一個端口和一個隊列,我想看看如何。

+0

我也觀察到構造函數的例外,如果我沒有默認打印機。從構造函數中移除所需的訪問權限可以修復它。 – 2016-08-10 15:07:04

回答

3

GAH ..而當沒有希望 - 做研究更

簡短的回答 -

長回答: 「你不能使用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_