'v3.C*********************************************************** ' File: DruckerAuswahl.VBS ' Autor: dieseyer@gmx.de ' dieseyer.de ' ' Bietet eine Auswahl der Netzwerk- bzw. der lokalen Drucker; ' Virtuelle Drucker (PDF) stehen nicht zur Auswahl - das läßt ' sich aber ändern. '*************************************************************** Option Explicit Dim Drucker ' WSHShell.run UCase("net use lpt2 /DELETE") , 0, True ' WSHShell.run UCase("net use lpt2: \\PrintSrv\LJ4plus") , 0, True If Drucker = "" then Drucker = Druckerauswahl ' Function Aufruf ' ~~~~~~~~~~~~~~~~~~~~~~~~ MsgBox Drucker, , WScript.ScriptName WScript.Quit '*************************************************************** Function Druckerauswahl ' Anfanfg '*************************************************************** Dim i, n, Text, DruckerNr, NetPRN, WSHNet Set WSHNet = WScript.CreateObject("WScript.Network") Set NetPRN = WSHNet.EnumPrinterConnections n = 0 ' welche Drucker sind verwendbar: For i = 0 To NetPRN.Count-1 Step 2 if Left(NetPRN(i+1),2) = "\\" then n = n + 1 Text = Text & n & ": " & NetPRN(i) & vbTab & NetPRN(i+1) & vbCRLF End If if not Left(NetPRN(i+1),2) = "\\" then if UCase(Left(NetPRN(i), 3)) = "LPT" then n = n + 1 Text = Text & n & ": " & NetPRN(i) & vbTab & NetPRN(i+1) & vbCRLF End If End If Next Text = Text & vbCRLF & "Auf welchen Drucker soll gedruckt werden?" DruckerNr = InputBox (Text, WScript.ScriptName) On Error Resume Next DruckerNr = Asc( DruckerNr ) -48 On Error GoTo 0 If DruckerNr > n OR DruckerNr < 1 then Text = "!!! FALSCHE EINGABE !!!" & vbCRLF & vbCRLF & Text DruckerNr = InputBox (Text, WScript.ScriptName) On Error Resume Next DruckerNr = Asc( DruckerNr ) -48 On Error GoTo 0 End If If DruckerNr > n OR DruckerNr < 1 then DruckerNr = "" If DruckerNr = "" then WSHShell.Popup " . . . denn eben nicht!", 10, WScript.ScriptName & " . . . ist zu Ende!" , 64 If DruckerNr = "" then WScript.Quit n = 0 ' gewählten Drucker ermitteln For i = 0 To NetPRN.Count-1 Step 2 if Left(NetPRN(i+1),2) = "\\" then n = n + 1 If n = DruckerNr Then Druckerauswahl = NetPRN(i+1) End If if not Left(NetPRN(i+1),2) = "\\" then if UCase(Left(NetPRN(i), 3)) = "LPT" then n = n + 1 If n = DruckerNr Then Druckerauswahl = NetPRN(i ) End If End If Next End Function ' Druckerauswahl '***************************************************************