声明函数AddPrinterConnection多次运行

时间:2014-02-23 23:46:56

标签: vb.net printing

我在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多台打印机的速度非常慢。

我想知道是否:

  1. 有一种方法可以多次调用该函数,因此该函数可以运行很多次,使得工作变得非常快?

  2. 或者是否有更好的方法来使用我正在使用的VB.net映射网络打印机。

1 个答案:

答案 0 :(得分:0)

我最终做的是以下内容;

  1. 对于多线程,我使用了一个类

    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

  2. 为了映射队列,我使用System.Printing.LocalPrintServer

    Dim PP As New Printing.LocalPrintServer PP.ConnectToPrintQueue(Printer)

  3. 这一切都很好,也很快。

    希望这有助于某人。