dr-freak
Goto Top

VBScript, mehrere Dateien auf einem speziellen Windows-Drucker ausgeben (Druckername im Script angeben)

Das folgende Script habe ich aus einem älteren Beitrag in diesem Forum kopiert. Leider weiß ich nicht, wie es mir möglich ist, die Ausgabe auf einen speziellen Windows-Drucker (z.B. HP 2014) zu leiten. Die Druckausgabe erfolgt bisher immer auf dem Windows-Standarddrucker. Ich hoffe, dass mir irgendwer helfen kann. Danke!!!

'PrintAll.vbs
sSourceFolder = "P:\"
If WScript.Arguments.Count > 0 Then
sSourceFolder = WScript.Arguments(0)
End If
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists(sSourceFolder) Then
WScript.Echo "Ordner " & sSourceFolder & " nicht verfügbar!"
WScript.Quit(2)
Else
bPrintetd = False
Set oShellApp = WScript.CreateObject("Shell.Application")
For Each oFile In fso.GetFolder(sSourceFolder).Files
If InstrRev(oFile.Name, ".") Then
If LCase(Mid(oFile.Name, InstrRev(oFile.Name, "."))) = ".pdf" Then
oShellApp.ShellExecute oFile.Path, "", "", "print", 0
bPrinted = True
WScript.Sleep(5180)
End If
End If
Next
Set oShellApp = Nothing
If Not bPrinted Then
WScript.Echo "Kein Dokument zum Drucken gefunden!"
WScript.Quit(1)
End If
End If

Content-Key: 147095

Url: https://administrator.de/contentid/147095

Printed on: April 24, 2024 at 17:04 o'clock

Member: Berrnd
Berrnd Jul 17, 2010 at 17:55:06 (UTC)
Goto Top
Hi,

also die konkrete Antwort auf deine Frage hab ich nicht.
Als Workaround könntest du aber einfach zuvor den Standardrucker ändern und danach wieder zurückstellen.
Hier ein kurzes Beispiel zum Standarddrucker setzen:
Set WMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")  

Set colDrucker =  WMIService.ExecQuery("SELECT * FROM Win32_Printer WHERE Name = 'DeinDruckerName'")  
For Each Drucker in colDrucker
    Drucker.SetDefaultPrinter()
Next
Gruß
Bernd
Member: Dr-Freak
Dr-Freak Jul 17, 2010 at 18:39:46 (UTC)
Goto Top
Danke für die Antwort. Die Lösung ist zwar nicht so ganz sauber aber ersteinmal nutzbar, falls keiner eine andere Idee hat.

Gruß
Frank