Autor Thema: Standarddrucker ändern  (Gelesen 3289 mal)

Offline das_Moelli

  • Frischling
  • *
  • Beiträge: 35
Standarddrucker ändern
« am: 25.08.06 - 08:57:41 »

Hallo Forum

Ich suche nach einer Möglichkeit, aus LotusScript herraus Mail + Anhang zu drucken. Soweit ist es mir auch schon gelungen, nur das als Drucker immer der Standarddrucker benutzer wird. An dieser Stelle möchte ich eingreifen und einen bestimmten Drucker ansprechen. Ich habe schon etwas recherchiert und folgendes Script aus einen Post von Eknori gefunden und benutzt:

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

Sub [whatever]
Dim WshNetwork As Variant
Dim WshPrinters As Variant
Dim pArray() As String
Dim strBuffer As String * 254
Dim iRetValue As Long
Dim DefaultPrinter As String
Dim pCount As Integer
Dim n As Integer
Dim PrinterPath As Variant

' Retreive current default printer information
iRetValue = GetProfileString("windows", "device", ",,,", strBuffer, 254)
DefaultPrinter$ = Left(strBuffer, Instr(strBuffer, ",") - 1)
Print "Current default printer is " & DefaultPrinter$

Set WshNetwork = CreateObject("WScript.Network")
Set WshPrinters = WshNetwork.EnumPrinterConnections()

'count the connected printers
pCount% = 0
For n = 1 To WshPrinters.Count() Step 2
If wshPrinters(n) <> "" Then pCount%=pCount%+1
Next

'collect the names of the connected printers
Redim pArray(pCount%-1) As String
pCount% = 0
For n = 1 To WshPrinters.Count() Step 2
If wshPrinters(n) <> "" Then
pArray(pCount%) = wshPrinters(n)
pCount%=pCount%+1
End If
Next

PrinterPath = ws.Prompt(4,"Select Printer","Choose a printer from the following list:","",pArray)
If Cstr(PrinterPath)="" Then Exit Sub

WshNetwork.SetDefaultPrinter Cstr(PrinterPath)

Print "Default printer is now " & Cstr(PrinterPath)

'*****************************************
' Print what you need to print here
'*****************************************

WshNetwork.SetDefaultPrinter DefaultPrinter$
Print "Default printer restored to " & DefaultPrinter$

Set WshNetwork = Nothing
Set WshPrinters = Nothing
End Sub 

Leider schaffe ich es nicht, dieses Script zum laufen zu bringen.
In der Zeile
Code
PrinterPath = ws.Prompt(4,"Select Printer","Choose a printer from the following list:","",pArray)
bekomme ich immer die Fehlermeldung

Variant does not contain an object


Weiß jemand was dort falsch ist, oder was ich falsch configuriert habe?

Viele Grüße Christian

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Standarddrucker ändern
« Antwort #1 am: 25.08.06 - 09:24:26 »
da fehlt doch noch die definition von WS ?

also zuoberst (unterhalb von sub) noch die zeile

dim ws as new notesuiworkspace einfügen
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline das_Moelli

  • Frischling
  • *
  • Beiträge: 35
Re: Standarddrucker ändern
« Antwort #2 am: 25.08.06 - 09:39:48 »

jau, das war ja einfach...

vielen dank :)



ist es wohl auch möglich, einfach einen bestimmten Drucken auszuwählen? Ich weiß jetzt beispielsweise, das jeder Client den Druckentreiber "FinePrint" oder "Print-2-Image" installiert hat. Jetzt möchte ich einfach im Script einstellen, das er für diesen Druckauftrag, "FinePrint" benutzt, ohne das einen Auswahlbox erscheint. Sollte ja auch gehen....

Viele Gruße Christian

Offline das_Moelli

  • Frischling
  • *
  • Beiträge: 35
Re: Standarddrucker ändern
« Antwort #3 am: 25.08.06 - 09:48:28 »

habs schon gefunden...

einfach

Code
PrinterPath = "Druckername"

gruß Christian

Offline headshrinker

  • Frischling
  • *
  • Beiträge: 41
Re: Standarddrucker ändern
« Antwort #4 am: 12.01.07 - 13:39:13 »
Hallo,

habe obiges Script auch mal bei mir eingebaut, um eine Maske auf bestimmten Druckern zu drucken. kann auch die Drucker auswählen, sogar nach Adobe PDf kann man auswählen, aber leider fangen die Drucker nicht an zu drucken und ich bekomme leider auch keine Fehlermeldung. Muss ich eventuell noch was im
Script hinzufügen???  :-[

Glombi

  • Gast
Re: Standarddrucker ändern
« Antwort #5 am: 12.01.07 - 13:44:04 »
In dem Script fehlt noch der Teil der druckt.

Und zwar musst Du hinter
'*****************************************
' Print what you need to print here
'*****************************************

das Script einbauen.

Bsp
dim uidoc as NotesUIDocument
set uidoc = ws.CurrentDocument
call uidoc.Print


würde dann das aktuelle Dokument drucken.

Andreas

Glombi

  • Gast
Re: Standarddrucker ändern
« Antwort #6 am: 12.01.07 - 13:48:16 »
Bei mir funktioniert es aber nicht. Wenn ich einen anderen Drucker wähle, zeigt der Druckdialog den alten Standarddrucker an...
In der Systemsteuerung ists aber geändert.
« Letzte Änderung: 12.01.07 - 13:50:21 von Glombi »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Standarddrucker ändern
« Antwort #7 am: 12.01.07 - 15:38:02 »
Ich habe das bis heute noch niemals zufriedenstellend hinbekommen. Und wenn es unter OS A funktionierte, machte OS B was ganz anderers. Ich werde hier den Verdacht nicht los, dass der Notes-Client hier nicht transparent auf die WinAPI zugreift.
Aber: Notes und Drucken ... Man soll es halt lassen.

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz