Ich versuche in einer Lotus Notes (R5) Datenbank einen Drucker mit Lotus Script bzw. JavaScript auszuwählen um später das Dokument auf dem selektierten Drucker (z.B. Acrobat Distiller) drucken zu können. Ich habe aber in der Klassenreferenz keine Hinweise gefunden.
Wer kann mir helfen???
Sebastian Lewers
03.09.2004, 15:15
Hier ein Script, mit dem sich "Default Printer" auslesen lässt.
Evtl. hilft es Dir weiter.
Aber was hast Du damit vor ? Soll der User den Drucker nicht auswählen können ?
Sub Click(Source As Button)
Dim iRet As String
Dim CurrentVersion As String
Dim DefPrinter As String
Dim PrinterPort As String
Dim PrinterDriver As String
KEY$ = "Software\Microsoft\Windows NT\CurrentVersion\Windows"
' Test if current version is Windows NT
CurrentVersion = getRegValue(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows NT\CurrentVersion","CurrentVersion")
iRet = getRegValue(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows NT\CurrentVersion","ProductName")
Msgbox CurrentVersion
If iRet = "" Then
iRet = getRegValue(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion","ProductName")
'Get the default printer setting for Windows ME
DefPrinter = Trim ( Cstr(GetRegValue(HKEY_CURRENT_CONFIG, "System\CurrentControlSet\Control\Print\Printers", "Default" ) ) )
Else
'Get the default printer setting for Windows NT, Windows 2000
DefPrinter = Trim ( sword ( Cstr ( GetRegValue ( HKEY_CURRENT_USER, KEY$, "Device" ) ) ,"," ,1 ) )
End If
KEY$ = "System\CurrentControlSet\Control\Print\Printers\" & DefPrinter
PrinterPort = getRegValue ( HKEY_LOCAL_MACHINE, Key$ , "Port")
KEY$ = "System\CurrentControlSet\Control\Print\Printers\" & DefPrinter
PrinterDriver = getRegValue ( HKEY_LOCAL_MACHINE, Key$ , "Printer Driver")
Msgbox DefPrinter
Msgbox PrinterPort
Msgbox PrinterDriver
End Sub
Evtl. noch etwas, womit der Default Printer geändert wird.
Habe ich jedoch noch nicht getestet !
Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (Byval hKey As Long, Byval lpSubKey As String, Byval dwReserved As Long, Byval samDesired As Long, phkResult As Long) As Long
Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (Byval hKey As Long, Byval lpValueName$, Byval lpdwReserved As Long, lpdwType As Long, lpData As Any, lpcbData As Long) As Long
Declare Function RegCloseKey Lib "advapi32" (Byval hKey As Long) As Long
Sub Click(Source As Button)
Dim PName As String
Dim WorkSpace As New NotesUIWorkSpace
Dim UIDoc As NotesUIDocument
Dim Doc As NotesDocument
Set UIDoc = WorkSpace.CurrentDocument
Set Doc = UIDoc.Document
Doc.txtPrinterDefault = GetCurrPrinter()
End Sub
Function GetCurrPrinter() As String
Const HKEY_CURRENT_CONFIG = &H80000005
GetCurrPrinter = RegGetString$(HKEY_CURRENT_CONFIG, "System\CurrentControlSet\Control\Print\Printers", "Default")
End Function
Function RegGetString$(hInKey As Long, Byval subkey$, Byval valname$)
Dim RetVal$, hSubKey As Long, dwType As Long, SZ As Long
Dim R As Long
RetVal$ = ""
Const KEY_ALL_ACCESS = 0
Const ERROR_SUCCESS = 0
Const REG_SZ = 1
R = RegOpenKeyEx(hInKey, subkey$, 0, KEY_ALL_ACCESS, hSubKey)
If R <> ERROR_SUCCESS Then Goto Quit_Now
SZ = 256
v$ = String$(SZ, 0)
R = RegQueryValueEx(hSubKey, valname$, 0, dwType, Byval v$, SZ)
If R = ERROR_SUCCESS And dwType = REG_SZ Then
RetVal$ = Left$(v$, SZ)
Else
RetVal$ = "--Not String--"
End If
If hInKey = 0 Then R = RegCloseKey(hSubKey)
Quit_Now:
RegGetString$ = RetVal$
End Function
Gruß
SESE
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.