2016-11-16 83 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