Just nu i M3-nätverket
Jump to content

felmeddelande!!


mayar

Recommended Posts

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

 

 

Link to comment
Share on other sites

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]

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...