Domino 9 und frühere Versionen > ND8: Entwicklung

Standarddrucker auslesen

(1/1)

Thorsten Kalweit:
Hallo zusammen,

wie kann ich per Script den Standarddrucker vom Client auslesen? Ich habe mir bereits verschiedenste Lösungen und Scriptlets angesehen, aber keins führt zum richtigen Ergebnis.

Könnt Ihr mir helfen? (ggf. mit Beispiel)

Peter Klett:
Ich meine, nichts gefunden zu haben, um das direkt in Notes auszulesen, daher gehe ich im Script über Word

Dim winword As Variant
Set winword = CreateObject ("Word.Application")
Dim drucker As String
drucker = winword.Application.ActivePrinter

Vielleicht geht es auch direkter.

Thorsten Kalweit:
Cool, vielen Dank.

So einfach ist das! Die Lösung ist super!

TRO:
... oder aus der Registry auslesen

 Function f_sW32GetDefaultPrinter() As String
   Dim oWShell As Variant
   Dim sRegKey As String
   Dim sPrinter As String
   Dim vTmp As Variant
   
   Set oWShell = CreateObject( "WScript.Shell" )
   sRegKey = "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device"
   sPrinter = oWShell.RegRead( sRegKey )
   'liefert sowas zurück:     \\XXX14600\xxxdr4027e,winspool,Ne07:
   'jetzt den Printer-Namen extrahieren:
   vTmp = Split( sPrinter, "," ) '(0)
   sPrinter = vTmp(0)
   f_sW32GetDefaultPrinter = sPrinter
   'WScript.Echo strPrinter
End Function


hth

Thomas

Christian Weiß:

--- Code: ---Declare Function GetProfileString Lib "kernel32.dll" Alias "GetProfileStringA" ( _
 ByVal lpAppName As String, _
 ByVal lpKeyName As String, _
 ByVal lpDefault As String, _
 ByVal lpReturnedString As String, _
 ByVal nSize As Long ) As Long

Private Function GetDefaultPrinter() As String
'Get Defaultprinter
Dim strBuffer As String * 254
Dim defaultPrinter As String
defaultPrinter = GetProfileString("windows", "device", ",,,", strBuffer, 254)
GetDefaultPrinter = Left(strBuffer, InStr(strBuffer, ",") - 1)
End Function




--- Ende Code ---

Funktioniert sehr gut.

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln