'v4.7******************************************************** ' File: DruckerListe.vbs ' Autor: dieseyer@gmx.de ' dieseyer.de ' ' Listet alle Drucker, die am Computer definiert sind '************************************************************ Option Explicit Dim n, i, Text, TextX Dim WSHShell, WSHNet, NetPRN, fso Dim ObjReg, ObjRemote, KeyX, Rootkey, oVal Set WSHShell = WScript.CreateObject("WScript.Shell") Set FSO = CreateObject("Scripting.FileSystemObject") Set WSHNet = WScript.CreateObject("WScript.Network") Set NetPRN = WSHNet.EnumPrinterConnections If (fso.FileExists("REGOBJ.DLL")) Then ' Regobj.dll registrieren (erfordert AdminRechte) Text = "REGSVR32.EXE " & "REGOBJ.DLL" & " /S" ' damit läßt sich besser auf die registry zugreifen WshShell.Run (Text),,TRUE ' muß im gleichen Verzeichnis wie das Script stehen Set ObjReg = WScript.CreateObject("RegObj.Registry") Else MsgBox "REGSVR32.EXE " & "REGOBJ.DLL" & " /S" & vbTab & " konnte nicht aufgerufen werden!", , WScript.ScriptName WScript.Quit End If Set ObjRemote = objReg.RemoteRegistry(wshnet.ComputerName) ' Objekt zeigt auf aktuellen PC (REGOBJ.DLL) KeyX = "\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion" KeyX = "\HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows" On Error Resume Next Set RootKey = objRemote.RegKeyFromString(KeyX) For Each oVal In RootKey.Values ' Auflistung Werte if oVal.Name = "Device" then TextX = oVal.Value & "Device" Next On Error GoTo 0 Text = "" For i = 0 To NetPRN.Count-1 Step 2 Text = Text & vbCRLF & vbTab & "Dr." & (i+2)/2 & vbTab & NetPRN(i) & vbTab & NetPRN(i+1) If InStr( TextX, NetPRN(i) ) then Text = Text & vbCRLF & "==>" & vbTab & "Dr." & (i+2)/2 & " ist der Standarddrucker." Next MsgBox Text, , WScript.ScriptName Set ObjReg = nothing WshShell.Run ("REGSVR32.EXE " & "REGOBJ.DLL" & " /U /S"),,TRUE ' REGOBJ.DLL - Registrierung aufheben WScript.Quit