Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Thorsten Kalweit am 31.03.15 - 15:07:27

Titel: Standarddrucker auslesen
Beitrag von: Thorsten Kalweit am 31.03.15 - 15:07:27
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)
Titel: Re: Standarddrucker auslesen
Beitrag von: Peter Klett am 31.03.15 - 15:20:15
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.
Titel: Re: Standarddrucker auslesen
Beitrag von: Thorsten Kalweit am 31.03.15 - 15:32:43
Cool, vielen Dank.

So einfach ist das! Die Lösung ist super!
Titel: Re: Standarddrucker auslesen
Beitrag von: TRO am 31.03.15 - 16:05:21
... 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
Titel: Re: Standarddrucker auslesen
Beitrag von: Christian Weiß am 10.04.15 - 16:22:38
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




Funktioniert sehr gut.