2016-11-16 7 views
1

Ich habe ein Problem in VB 6 beim Erstellen eines Druckerobjekts. Grundsätzlich muss ich ein Druckerobjekt erstellen, damit ich das richtige Fach einstellen kann, auf dem gedruckt werden soll.So erstellen Sie ein Druckerobjekt in VB

Ich habe den Druckernamen mit mir.

Der gesamte Code, den ich online finden kann, umfasst das Durchlaufen aller verfügbaren Drucker und das Finden einer Übereinstimmung mit unserem Druckernamen.

Gibt es eine Möglichkeit kann ich das Druckerobjekt prn direkt aus dem Druckername erstellen.

Jede Hilfe wäre willkommen.

+0

VB 6 oder VBA - Welches ist es? –

+0

Wenn Sie auf die IDE beziehen, ist es VB 6. – varuog

+0

Also warum VBA-Tag? –

Antwort

2

Sie können nicht. Auf die VB6 Printers-Auflistung wird nur nach Index und nicht nach Name zugegriffen. Siehe Visual Studio 6 Printer Object, Printers Collection.

Sie müssen also die Sammlung nach dem Drucker suchen, den Sie möchten. Zum Beispiel:

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 

Die oben die Situation nicht behandeln, wo der Drucker Sie suchen nicht in der Sammlung ist. Sie sollten Logik hinzufügen, um diese Bedingung zu erfüllen - was Sie tun möchten, ist spezifisch für Ihre speziellen Aufgaben und Anforderungen. In diesem Beispiel wird auch die Groß-/Kleinschreibung beachtet. Beachten Sie dies auch.

+0

Danke für die Antwort. Der von Ihnen erwähnte Code ist das, was ich gerade in meiner Anwendung verwende. Wenn es jedoch eine große Anzahl von Druckern (2500+) gibt, neigt dies dazu, sehr langsam zu werden. Also war auf der Suche nach einem Workaround. – varuog

+0

Wenn Sie nicht die Drucker wechseln, müssen Sie die Druckersammlung natürlich nicht jedes Mal durchsuchen. Suchen Sie nach dem Start der App (oder nach der Benutzerauswahl usw.) und behalten Sie dann den Verweis auf das von Ihnen verwendete Druckerobjekt bei. Wenig Besorgnis über die Leistung beim Durchsuchen der Drucker-Sammlung. – MarkL