VBScript, mehrere Dateien auf einem speziellen Windows-Drucker ausgeben (Druckername im Script angeben)
17.07.2010
14:51:18 Uhr1818 Aufrufe
2 Antworten
14:51:18 Uhr
2 Antworten
Noch nicht bewertet
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
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
bernd.bestel schreibt am 17.07.2010 um 19:55:06 Uhr
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:
Gruß
Bernd
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:
01.
Set WMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") 02.
03.
Set colDrucker = WMIService.ExecQuery("SELECT * FROM Win32_Printer WHERE Name = 'DeinDruckerName'") 04.
For Each Drucker in colDrucker 05.
Drucker.SetDefaultPrinter() 06.
NextBernd







