Drucker festlegen und wieder zurücksetzten

Hi,

Hab in einem VB6 Programm die Aufgabe einen bestimmten Drucker für das
Programm festzulegen mit dem dann alles im Programm gedruckt wird und wenn das Programm dann geschlossen wird soll der ursprüngliche Standarddrucker wieder
hergestellt sein!

Hoffe mir kann jemand helfen(super wäre es gleich mit Code)!

MFG Chris!

Hallo Chris,
schreibe in FormLoad…

For Each prThis In Printers
If prThis.DeviceName = „Ziel Drucker“ Then
Set Printer = prThis
SetDefaultPrinter = True
End If
Next prThis

und das Programm druckt auf diesen Drucker.
Rücksetzen ist nicht erforderlich, das gilt nur für dieses Programm. Ein anderes Programm kann gleichzeitig auf einen anderen drucker drucken.

cu Rainer

Hi, Rainer

Danke für deine schnelle Antwort, werd das mal probieren!

cu
Chris

funktioniert nicht
Hi, nochmal

entweder ich mach was falsch oder es funktioniert nicht!

cu Chris!

Hallo Chris,
was funktioniert nicht?

Zur Erklärung. …
Ich habe hier einen Rechner, der drei Verzeichnisse überwacht.
1.) ‚Barcodeetiketten‘
2.) ‚Lieferabrufe‘
3.) ‚Materialeinsätze‘
Wird in eines der Verzeichnisse eine Datei geschrieben, bereitet ein VB-Programm den Inhalt auf und druckt das dann bei dem Mitarbeiter aus, der diese Informationen benötigt, b.z.w. das Barcodeetikett wird in der Produktion ausgedruckt, kommt an das fertige Material.

Aus diesem Programm habe ich den Quellcode hier her kopiert.
Glaubst Du, daß es geht? :wink:

cu Rainer

Hi, Rainer

Also, ich verwende den Code von dir um in meinem Programm einen Drucker Namens „Adobe PDF“ anzusprechen mit dem aus dem Programm heraus PDFs convertiert werden. Jetzt habe ich das Problem das er zwar in die Schleife hineingeht aber später im Programm wo ich darüber drucken möchte(doc.printout) bekomme ich einen fehler weil er nicht über den Adobe druckt sondern über den Standard Drucker!

Kurz gesagt das Programm druckt nicht über den drucker den ich mit deinem Code festgelegt habe!

Ich füge dir hier nochmal den Code ein den ich verwendet habe, vielleicht fällt dir ein Fehler auf:

Dim prThis As Printer
For Each prThis In Printers
If prThis.DeviceName = „Adobe PDF“ Then
Set Printer = prThis
Exit For
End If
Next prThis

cu Chris!

Hallo Chris,
bist Du sicher, daß der Drucker exakt so heißt?
Lies die Namen doch mal aus. Füge eine Liste (List1) hinzu und die Zeile …

Dim prThis As Printer
For Each prThis In Printers

list1.additem prThis.DeviceName

If prThis.DeviceName = „Adobe PDF“ Then
Set Printer = prThis
Exit For
End If
Next prThis

Dann bekommst Du eine Liste der drucker und kannst die exakte Schreibweise sehen. Ein Stoppunkt auf

If prThis.DeviceName = „Adobe PDF“ Then

würde aber auch reichen.
Bei dem Verhalten würde ich sagen, ‚Drucker nicht gefunden‘.

cu Rainer