我在Visual Studio Visual Basic 2012中要求为模块中的用户映射打印机。
我找不到直接使用.net 3.5的方法,所以我在模块中使用了以下内容:
Declare Function AddPrinterConnection Lib "winspool.drv" Alias "AddPrinterConnectionA" (ByVal pName As String) As Integer
然后我使用a来测试其他内容,如果是,我使用以下内容添加打印机:
AddPrinterConnection("\\printserver\" & X(1))
现在可行,但映射10多台打印机的速度非常慢。
我想知道是否:
有一种方法可以多次调用该函数,因此该函数可以运行很多次,使得工作变得非常快?
或者是否有更好的方法来使用我正在使用的VB.net映射网络打印机。
答案 0 :(得分:0)
我最终做的是以下内容;
对于多线程,我使用了一个类
Class MainClass
Public Shared Sub Main(Printer)
Dim PadThread As New Threading.Thread(
AddressOf Work.AddNetPrint)
PadThread.IsBackground = True
PadThread.Start(Printer)
End Sub
End Class
Public Class Work
Shared Sub AddNetPrint(Printer)
Dim PP As New Printing.LocalPrintServer
If Repair = True Then
Repair = False
Try
PP.DisconnectFromPrintQueue(Printer)
Catch
End Try
Try
PP.ConnectToPrintQueue(Printer)
Catch
End Try
Else
Try
PP.ConnectToPrintQueue(Printer)
Catch
End Try
End If
PP.Dispose()
PP = Nothing
End Sub
End Class
为了映射队列,我使用System.Printing.LocalPrintServer
Dim PP As New Printing.LocalPrintServer
PP.ConnectToPrintQueue(Printer)
这一切都很好,也很快。
希望这有助于某人。