@FilePrint und Drucker festlegen

  • Hallo,


    wenn ich beim @Command "FilePrint" Parameter angebe, wird das Dokument ohne Druckdialog auf dem Vorgabedrucker gedruckt (?).


    Kann ich über einen Formelbefehl vor dem Drucken den Drucker festlegen?


    Danke für Eure Antworten


    Gruss
    Zonk

    • Offizieller Beitrag

    die Win-Api nutze ich dafür nicht mehr, da diese Methode bei Updates und SP anfällig ist und dann ggf. nicht mehr funktioniert. :cry:


    Zur Zeit benutze ich den WSH um den Drucker umzuschalten.


    Im Beispiel wird das aktuelle Dokument im UI auf den Druckertreiber "FreePDF XP" gedruckt.



    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • hi dirk,
    was benötige ich für


    Set objNetwork=CreateObject("WScript.Network") ?


    bzw. was muss installiert sein? habe hier w2k prof


    oder gibts von da schon wieder mal was neues um den drucker zu wechseln. breche mir hier echt mal wieder einen ab ...

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

    • Offizieller Beitrag

    Du musst nur den WSH (Windows Scripting Host) installieren.


    Sollte aber bei der Installation von W2k dabei sein.


    Gruß
    Dirk

  • bin ich auch mal von ausgegangen. bekomme allerdings beim "GetDefaultPrinter" ne fehlermeldung. das ganze läuft in ner vmware session. könnte das das problem sein?


    weisst du zufällig wie die OLE Klasse heissen müsste? dann kann ich zumindest mal schauen ob es drauf ist oder nicht ...

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

  • so, hab mal ein bischen weitergeforscht.


    also der setdefaultprinter funktioniert. den getdefaultprinter gibt es (zumindest an dieser stelle) nicht mehr.


    nur das drucken über freepdfxp klappt leider nicht. habe das problem, das er zwar den drucker umstellt, jedoch anscheinend noch auf den alten standard drucker druckt.


    ich werd bald wahnsinnig ...

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

    • Offizieller Beitrag

    lösche mal die Zeile
    gDp = objNetwork.GetDefaultPrinter


    Damit wollte ich den aktuellen Drucker in eine Var schreiben, um hinterher wieder den Drucker umzustellen.


    Gruß
    Dirk

  • hab ich schon. klappt jetzt auch, wenn ich den drucker vor dem öffnen der maske ändere. im geöffneten uidoc macht er leider 'mist'.


    die frage ist jetzt nur noch: wie stelle ich auf den standarddrucker zurück bzw. wie komme ich an den namen um ihn zurückzustellen?


    habe in der wscript klasse nix gefunden ...

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

    • Offizieller Beitrag

    bin miorgen nicht im büro, lass mich am mittwoch noch mal nachsehen.


    gruß
    dirk

    • Offizieller Beitrag

    also den Default-Printer kannst Du entweder über die Registry oder mit der Win-Api ermitteln.


    Hier ein bei. für die Win-Api:

    Code
    Declare Function GetProfileString Lib "Kernel32" Alias "GetProfileStringA" (Byval lpAppName As String, Byval lpKeyName As String, _
    Byval lpDefault As String, Byval lpReturnedString As String, Byval nSize As Long) As Long
    
    
    
    
    DefPrinter = Trim(GetProfileString("WINDOWS", "DEVICE", "", String(128, 0), 127))


    Gruß
    Dirk

  • Finde diese Lösung eigentlich super. Ich habe nur das Problem, dass sie bei meinen Tests nur in der Client-Version 7.0.2 funktioniert.


    Bei dem Test auf dem 6.5.3 Client wird der std. Drucker zwar umgeschaltet, aber Notes druckt trotzdem auf dem ursprünglich vorgegebenen.


    Ich benötige aber eine Drucker-Umschaltlösung für 6.5.3. - Irgendeine Idee - mache ich etwas falsch - sollte diese Lösung auch in 6.5.3 funktionieren - gibt es einen Trick, an welchen Event die Routine angehängt wird ?


    Gruß


    Hartmut

    • Offizieller Beitrag

    mh. habe es selber nur unter 6.5.1 und 6.5.4 eingesetzt, da funktioniert es.


    Welches BS setzt Ihr auf diesen Rechnern ein?


    Gruß
    Dirk

  • Hallo Dirk,


    wir nutzen zur Zeit WIN XP.


    Meine lokalen Tests mache ich in Notes 7.0.0. Dort ist das Problem, dass die Drucker-Umschaltung vom Client nicht "gesehen" wird.
    Erst im 7.0.2 wird die Umschaltung, wenn ich sie im Initialize aktiviere, auch vom Client akzeptiert.


    Gruß


    Hartmut

  • Moin Moin,


    Ich hab da eben so ein ähnliches Problem...
    Konnte das dank dieses Threads im großen und ganzen lösen....bei mir druckt er jetzt auch mit freepdf, nur will ich ja acuh danach den alten Standart wieder herstellen, nur wie gesagt getdefaultprinter ergiebt ne errormessage, dann hat ja diali den codeschnipsel mit der registry gepostet...soweit so gut, dummerweise ergibt das auslesen bei mir "47" womit natürlich der alte drucker nicht gesetzt werden kann :-?
    wie bekomme ich den denn jetzt raus?


    Danke schonmal im vorraus

    • Offizieller Beitrag

    Debugg mal das Script und schau Dir nach der Zeile

    Code
    DefPrinter = Trim(GetProfileString("WINDOWS", "DEVICE", "", String(128, 0), 127))

    an was in der Var DefPrinter steht. Dort muss noch mehr stehen.


    Gruß
    Dirk