ShellExecute "Print" und Standard-Drucker setzen

DrMueller

Erfahrenes Mitglied
Hallo Leute,
ich habe in unserem Programm was entdeckt, wobei ich nicht sicher bin, ob es tatsächlich ein Problem ist oder nur eine lokale Anomalie bei mir:
Wir drucken bei einer PDF-Konvertierungsfunktion auf einen entsprechenden PDF-Drucker und lesen das umgewandelte Dokument wieder ein.
Das sieht wie folgt aus:
Code:
      ret = ShellExecute(GetDesktopWindowHWND(), "printto", fn, "Consolidate", "", 1)     'MLHIDE
      If ret >= 32 Then
        Exit Sub      'Succesfull
      Else
        ret = 0
       
        stprname = Printer.DeviceName
        If setDefaultPrinter("Consolidate") Then                        
          ret = ShellExecute(GetDesktopWindowHWND(), "print", fn, "", "", 1)     
          Call setDefaultPrinter(stprname)
        End If

Nun klappte das wahrscheinlich bisher immer, weil printTo immer soweit einen korrekten Wert geliefert hat. Nun muss ich aber für das Drucken von POT-Dateien print verwenden.

den Standard-Drucker setzen wir wie folgt:
Code:
      Dim pt As Printer
      For Each pt In Printers
        If pt.DeviceName = Printername Then                        'MLHIDE
          Set Printer = pt
          Exit For
        End If
      Next

Das Printer-Objekt wird auch entsprechend gesetzt, aber in der Drucker-Anzeige ändert sich das Häckchen für den Standard Drucker nicht.
Daher ist entweder das Problem, dass der Standard-Drucker gar nicht richtig gesetzt wird, obwohl das Printer-Objekt sich ändert, oder aber das der Print-Befehl dies ignoriert.

Ich habe testweise bei Print versucht den Drucker direkt mitzugeben, aber sogar der wird ignoriert.


Hat hier jemand evtl. Erfahrungen mit dem Print-Befehl?



Wie immer vielen Dank im Voraus für alle Antworten.

Müller Matthias
 
print druckt ja nur aus den Standarddrucker, da scheint es Probleme damit zu geben, den zu setzen. Welche VB-Version benutzt du (VB/VBA)?


Der Doc!
 
VB6
oben siehst Du ja, wie wir den Standard-Drucker setzen.
Gibt es damit evtl. ein Problem? Wie gesagt, das Printer-Objekt hätte den richtigen Wert, zumindest laut DeviceName, aber im Drucker-Explorer ändert sich das Häckchen nicht, welches anzeigt, welcher Drucker Standard ist.
 
Hm ja, sehr merkwürdiger Zufall, dass das nie aufgefallen ist.
Werde es wohl tatsächlich so umbauen müssen.

Danke Doc.
 

Neue Beiträge

Zurück