2016-11-16 78 views
1

我在创建打印机对象时遇到了VB 6中的一个问题。 基本上,我需要创建一个打印机对象,以便我可以设置需要执行打印的正确纸盒。如何在VB中创建打印机对象

我有我的打印机名称。

我可以在网上找到的所有代码都包含循环遍历所有可用的打印机,并找到与我们的打印机名称匹配的代码。

有没有一种方法我可以直接从打印机名称创建打印机对象prn。

任何帮助,将不胜感激。

+0

VB 6或VBA - 哪一个是它 –

+0

如果你指的是IDE,那就是VB 6. – varuog

+0

那么为什么要用VBA标签? –

回答

2

你不行。 VB6打印机集合只能通过索引访问,而不能通过名称访问。见Visual Studio 6 Printer Object, Printers Collection

所以你必须搜索你想要的打印机集合。例如:

Private Function FindPrinter(PrinterName As String) As Printer 
    Dim i As Integer 
    For i = 0 To Printers.Count - 1 
    If Printers(i).DeviceName = PrinterName Then 
     Set FindPrinter = Printers(i) 
     Exit For 
    End If 
    Next i 
    Exit Function 
End Function 

以上不处理的情况下,你要寻找的打印机不是收藏。您需要添加逻辑来涵盖这种情况 - 您要做的是针对您的特定任务和要求。这个例子也是一个区分大小写的名称搜索,所以请记住这一点。

+0

感谢您的回复。您提到的代码就是我目前在我的应用程序中使用的代码。但是,当有大量打印机(2500+)时,这往往会变得非常缓慢。所以正在寻找解决方法。 – varuog

+0

除非您正在更换打印机,否则当然每次都不需要搜索打印机集合。在应用程序启动时(或用户选择等)搜索它,然后将该引用保留到正在使用的打印机对象中。然后关注搜索打印机集合的性能。 – MarkL