Just nu i M3-nätverket
Gå till innehåll

felmeddelande!!


mayar

Rekommendera Poster

Hej

Jag använder mig av den här scripten för att lägga till och ta bort skrivare till olika klienter, men jag eller användaren får felmeddelande när det inte finns någon skrivare att ta bort. Hur kan man redirect felmeddelanden att inte synas på skärmen? eller finns det ett annat sätt att ta bort skrivare utan att få felmeddelanden när det inte finns några skrivare att ta bort?

 

 

 

Dim ClientIP, netPrinter, UNCpath

 

'Ta reda på IP-adress

Set WTS = Wscript.CreateObject("WTSManager.Shell")

ClientIP = WTS.MyIPAddress

 

 

If ClientIP = "192.168.0.11" then

UNCpath = "\\server\hp LaserJet 1320"

 

'remove printer

Set objNetwork = WScript.CreateObject("WScript.Network")

objNetwork.RemovePrinterConnection "\\server\HP 2200"

 

elseif

ClientIP = "192.168.0.10" then

UNCpath = "\\server\HP 2200"

 

 

else 'Annars ta bort skrivare

 

Set objNetwork = WScript.CreateObject("WScript.Network")

objNetwork.RemovePrinterConnection "\\server\HP 2200"

 

Set objNetwork = WScript.CreateObject("WScript.Network")

objNetwork.RemovePrinterConnection "\\server\hp LaserJet 1320"

 

 

 

End if

 

 

'Mappa skrivaren

Set netPrinter = CreateObject("WScript.Network")

netPrinter.AddWindowsPrinterConnection UNCpath

 

WScript.Quit

 

 

Länk till kommentar
Dela på andra webbplatser

Kolla funktionen på: http://www.experts-exchange.com/Programming/Programming_Languages/Visual_Basic/Q_21553480.html

(du måste skrolla ned en bit)

 

[edit:] Lösningarna kan ibland vara krångliga att få upp utan medlemsskap.

[color="#006400"]'Funktion för att kolla om en skrivare finns[/color]
[color="#0000ff"]Public[/color] [color="#0000ff"]Function[/color] checkprinter(n)
   [color="#0000ff"]Set[/color] WshNetwork = WScript.[color="#0000ff"]CreateObject[/color]([GRÅ]"WScript.Network"[/GRÅ])
   [color="#0000ff"]Set[/color] Printers = WshNetwork.EnumPrinterConnections

   [color="#0000ff"]For[/color] i = 0 [color="#0000ff"]To[/color] Printers.Count - 1 Step 2
      [color="#0000ff"]If[/color] (n = Printers.Item(i+1)) [color="#0000ff"]Then[/color]
         checkprinter = [color="#0000ff"]True[/color]
         [color="#0000ff"]Exit[/color] [color="#0000ff"]For[/color]
      [color="#0000ff"]End[/color] [color="#0000ff"]If[/color] 
   [color="#0000ff"]Next[/color]
[color="#0000ff"]End[/color] [color="#0000ff"]Function[/color]

[color="#006400"]'För att sedan ta bort en skrivare - om den finns[/color]
[color="#0000ff"]Set[/color] WshNetwork = WScript.[color="#0000ff"]CreateObject[/color]([GRÅ]"WScript.Network"[/GRÅ])
[color="#0000ff"]If[/color] (checkprinter([GRÅ]"\\server\printer1"[/GRÅ])) [color="#0000ff"]Then[/color] WshNetwork.RemovePrinterConnection [GRÅ]"\\server\HP 2200"[/GRÅ]

 

 

/Cluster

------------------------------------------------------------

Ditt vetande är värdelöst om inte andra vet att du vet

-----------> http://eforum.kicks-ass.net <------------

 

[inlägget ändrat 2005-12-28 13:32:50 av Cluster]

Länk till kommentar
Dela på andra webbplatser

Magnus Ahlkvist

Clusters lösning är naturligtvis den mest korrekta, men om man är lat (som jag) kan man istället göra:

'On Error Resume Next gör att fel som kastas ignoreras och koden fortsätter exekveras på nästa rad
On Error Resume Next
objNetwork.RemovePrinterConnection "\\server\HP 2200"
'On Error Goto 0 gör att normal felhantering återställs.
On Error Goto 0

--

http://ahlkvist.blogspot.com <-- Min blogg, uppdateras emellanåt.

 

Länk till kommentar
Dela på andra webbplatser

Tack för hjälpen!! Jag löste det med On Error Resume Next.

Jag kunde inte få funktionen att fungera.

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...