Domino 9 und frühere Versionen > ND6: Entwicklung
Standarddrucker ändern
das_Moelli:
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
--- Ende Code ---
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)
--- Ende Code ---
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
umi:
da fehlt doch noch die definition von WS ?
also zuoberst (unterhalb von sub) noch die zeile
dim ws as new notesuiworkspace einfügen
das_Moelli:
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
das_Moelli:
habs schon gefunden...
einfach
--- Code: ---PrinterPath = "Druckername"
--- Ende Code ---
gruß Christian
headshrinker:
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??? :-[
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln