tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
695
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    DrMueller DrMueller ist offline Mitglied Brokat
    Registriert seit
    Aug 2006
    Beiträge
    396
    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
          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 :
    1
    2
    3
    4
    5
    6
    7
    
          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
     

  2. #2
    Avatar von DrSoong
    DrSoong DrSoong ist offline Iss was, Doc!
    tutorials.de Premium-User
    Registriert seit
    Jul 2003
    Ort
    Dem Zentrum meiner Welt
    Beiträge
    1.836
    Blog-Einträge
    85
    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!
     
    A: Hilfe, ich hab zwei Dateien hinzugefügt und nun sind die anderen weg
    B: Die Scrollbar da rechts ist dir schon mal aufgefallen?

  3. #3
    DrMueller DrMueller ist offline Mitglied Brokat
    Registriert seit
    Aug 2006
    Beiträge
    396
    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.
     

  4. #4
    Avatar von DrSoong
    DrSoong DrSoong ist offline Iss was, Doc!
    tutorials.de Premium-User
    Registriert seit
    Jul 2003
    Ort
    Dem Zentrum meiner Welt
    Beiträge
    1.836
    Blog-Einträge
    85
    Mangels VB6 kann ich nicht testen, da aber hier eine doch etwas umfangreichere Anleitung ist, dürfte dies doch nicht ganz so simpel sein, wie es scheint. Probier den Code mal aus (er lässt sich eventuell straffen), ob das dir hilft.


    Der Doc!
     
    A: Hilfe, ich hab zwei Dateien hinzugefügt und nun sind die anderen weg
    B: Die Scrollbar da rechts ist dir schon mal aufgefallen?

  5. #5
    DrMueller DrMueller ist offline Mitglied Brokat
    Registriert seit
    Aug 2006
    Beiträge
    396
    Hm ja, sehr merkwürdiger Zufall, dass das nie aufgefallen ist.
    Werde es wohl tatsächlich so umbauen müssen.

    Danke Doc.
     

  6. #6
    DrMueller DrMueller ist offline Mitglied Brokat
    Registriert seit
    Aug 2006
    Beiträge
    396
    Klappt perfekt som zumindest lokal.
     

Ähnliche Themen

  1. HttpRequest manuell setzen mit Request.Params.Set("Bla", "Blub")
    Von thomrohd im Forum .NET Web und Kommunikation
    Antworten: 0
    Letzter Beitrag: 11.05.06, 11:16
  2. link auf "enter" oder "esc" taste setzen?
    Von Atti im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 24.08.05, 01:41
  3. Standard Drucker setzen oder ermitteln
    Von killerbiene75 im Forum VisualStudio & MFC
    Antworten: 7
    Letzter Beitrag: 01.06.05, 13:57
  4. Antworten: 3
    Letzter Beitrag: 20.03.05, 19:54
  5. ShellExecute "print"
    Von BraveNewWorld im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 15.03.04, 15:02