Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1223 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  PAUSE Imprimante VBS Windows 2000

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PAUSE Imprimante VBS Windows 2000

n°1095814
cat82
Posté le 25-05-2005 à 07:20:40  profilanswer
 

Bonjour,
 
Je voudrais mettre en pause des imprimantes (en VBScript) qui sont sur certains serveurs, j' ai trouvé des scripts pour windows 20003 (laboratoire Microsoft) qui marche bien
 
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2" )
 
Set colInstalledPrinters =  objWMIService.ExecQuery _
    ("Select * from Win32_Printer Where Name = 'Nom de  l'imprimante'" )
 
For Each objPrinter in colInstalledPrinters  
    ObjPrinter.Pause()
Next
 
 
Mais, Aucun script trouvé ou syntaxe pour W2K, quelle est la syntaxe a utilisé car "objpinter.Pause()", il connait pas
Et je me galére depuis plusieurs jours sans trouver ....
 
Merci
 

mood
Publicité
Posté le 25-05-2005 à 07:20:40  profilanswer
 

n°1109997
cat82
Posté le 06-06-2005 à 16:37:50  profilanswer
 

....

n°1110735
dahlo
Posté le 07-06-2005 à 11:22:09  profilanswer
 

Pas de bol :( Méthode non supportée sur 2k.
Regarde du coté de PrnAdmin.dll du kit de ressources (obj.PrinterPause et obj.PrinterResume) et ici...

n°1112181
cat82
Posté le 08-06-2005 à 09:31:41  profilanswer
 

arf je comprend pas tellement :( j ai bien installe PrnAdmin.dll sur ma machine cliente
mais des ke j execute  
 
oMaster = ObjectCreate("PrintMaster.PrintMaster.1" ) (reference a ton lien "ici..." cf plus haut
 
Il me dit qu il y a une erreur ...

n°1112208
dahlo
Posté le 08-06-2005 à 09:55:50  profilanswer
 

arf! peut-être parce que: implicitement, le site en question omet systématiquement l'instruction set pour une variable objet (Set oMaster = ...). De manière plus académique chez M$...

n°1112579
cat82
Posté le 08-06-2005 à 13:16:07  profilanswer
 

j ai essaye avec Set ossi ... mai ca marche pa non plus

n°1112591
cat82
Posté le 08-06-2005 à 13:23:43  profilanswer
 

ca sera plus imple voila le code ke j ai mis
 
Set WshShell = Wscript.CreateObject("Wscript.Shell" )
WshShell.Run "regsvr32 /s Prnadmin.dll",1,TRUE
 
Set oMaster = CreateObject("PrintMaster.PrintMaster.1" )
oMaster.PrinterPause( "\\frasprntst", "\FRAPIJ2800" )
 
Et il me met "Cannot use parentheses when calling sub"

n°1112598
cat82
Posté le 08-06-2005 à 13:26:43  profilanswer
 

Non c bon ca merche c moi je fait le boulzor ...

n°1112602
cat82
Posté le 08-06-2005 à 13:30:19  profilanswer
 

Je te remercie Vraiement beaucoup :)
 
PS ca marche sur Windows 2000 ca marchera t il ossi sur Windows 2003 ?

n°1112829
dahlo
Posté le 08-06-2005 à 16:04:51  profilanswer
 

T'avais un sur-stock de parenthèses  ;)  
Bien-sur! sur 2k3; même mieux, pour certaines méthodes exploitant à 'fond' WMI.  
En plus, des scripts fournis prn*.vbs
Tu as la doc associée PrnAdmin.doc qui présente l'essentiel.

mood
Publicité
Posté le 08-06-2005 à 16:04:51  profilanswer
 

n°1113531
cat82
Posté le 09-06-2005 à 08:01:06  profilanswer
 

Je te remercie encore vraiement beaucoup  
c bon c a archiver

n°1113597
cat82
Posté le 09-06-2005 à 09:52:00  profilanswer
 

non pa tt de suite a archiver ... un peit truc encore :)
Voila j ai un morceau de code
 
arrComputers = Array("FRASPRN31" )
 
Set objWMIService = Nothing
Set colItems = Nothing
 
'Connection in Win32_NTLogEvent count number of printer
For Each strComputer In arrComputers
 Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2" )
 Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NTLogEvent where logfile = 'system' and sourcename = 'print' and type = 'Information' and eventcode = '10'", "WQL", _
         wbemFlagReturnImmediately + wbemFlagForwardOnly)
 For Each objItem In colItems
  nb_print = nb_print + 1
    Next
Next
MsgBox(nb_print)
 
Et il me met erreur de memoire  
Error : Out of Memory
Code : 80041006
Source : SWbemServices
 
Comment on fait pour palier ce pb ?
 

n°1115957
dahlo
Posté le 10-06-2005 à 16:44:34  profilanswer
 

Ouch!  
Tu aurais dû créer un autre topic, pour un peu ...
J'ai réussi à créer la même erreur, par des moyens pas très académiques (settings de WMI sur l'hystérisis d'objets client), sur une collection de 10 events, mais ça me paraît un peu gros!... J'opte, avant tout, sur le fait que le nombre d'objets événements retournés, via la requête, doit être trop important.
Pourtant ton appel en mode semi-synchrone est bon avec les iFlags optimums ;) juste un petit avis, utilise Eventtype(Entier octet) au lieu de Type(string)
Pour contourner ce problème, essaie par la méthode d'appel Asynchrone ...
 
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
'Traitement du log mode asynchrone  
'Note: Pour des raisons de sécurité dans ce mode, Ajouter ou Modifier
'[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\CIMOM] "UnsecAppAccessControlDefault"="1"
 
'DEB
strcomputer = "Ordprin"
bdone = False
NBEvent=0    
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strcomputer & "\root\cimv2" )
Set oSink = WScript.CreateObject("WbemScripting.SWbemSink", "SINK_" )
objWMIService.ExecQueryAsync oSink, "SELECT * FROM Win32_NTLogEvent where logfile = 'system' and sourcename = 'print' and Eventtype = 2 and eventcode = 6","WQL", _  
wbemFlagSendStatus
 
'test
' objWMIService.ExecQueryAsync oSink,"Select * from Win32_NTLogEvent where logfile = 'system' and sourcename = 'DCOM' and Eventtype = 1 and eventcode = 10002", "WQL", &h80
 
'attend la fin du moulinet!
While Not bdone
 WScript.sleep 1000
Wend
 
'FIN
 
'Sur événement fin traitement requête asynchrone
Sub SINK_onCompleted(HResult, objErr, objcontext)
 if Hresult=0 then _
  WScript.Echo "Requête terminée, " & _
  nbevent & " évènement(s) retourné(s)"  
     bdone = True
End Sub
 
'sur arrivée d'un objet
Sub sink_onObjectReady(obj, objcontext)
 nbevent=nbevent+1
 
 'TEST VISUALISATION (à utiliser sur une petite collection, sinon panne de souris!)  
 Mes= "Journal d'événements '"  & obj.LogFile & _
 "' de l'ordinateur " & obj.ComputerName  & vbcrlf & vbcrlf
 Mes= Mes & "Numéro de l'enregistrement ." & vbtab & obj.RecordNumber & vbcrlf  
 Mes= Mes & "Catégorie . . . . . . . . . . . . ." & vbtab & obj.category & vbcrlf
 if obj.CategoryString <> "" then  
  Mes= Mes & "Nom . . . . . . . . . . . . . . . ." & vbtab & obj.CategoryString & vbcrlf    
 end if
 Mes= Mes & "Généré part. . . . . . . . . . . ." & vbtab & obj.SourceName & vbcrlf  
 Mes= Mes & "Sous la session. . . . . . . . . ." & vbtab & obj.user & vbcrlf  
 Mes= Mes & "Survenu le . . . . .  . . . . . . ." & vbtab & DateStringToDate (obj.TimeGenerated) & vbcrlf  
 Mes= Mes & "Inscrit le. . . . . .  . . . . . . . ." & vbtab & DateStringToDate (obj.TimeWritten) & vbcrlf  
 Mes= Mes & "A le Code d'événement . . . ." & vbtab & obj.EventCode & vbcrlf
 Mes= Mes & "De type. . . . . . . . . . . . . . ." & vbtab & obj.Type & vbcrlf  
 Mes= Mes & "Avec le message. . . . . . . . ." & vbtab & obj.Message
 WScript.Echo Mes
 'FIN TEST VISUALISATION        
End Sub
 
'Petit traitement de datetime exploité pour TEST dans sink_onobjectready
Function DateStringToDate(dtmEventDate)
    DateStringToDate = CDate(Mid(dtmEventDate, 5, 2) & "/" & _
        Mid(dtmEventDate, 7, 2) & "/" & Left(dtmEventDate, 4) _
            & " " & Mid(dtmEventDate, 9, 2) & ":" & _
                Mid(dtmEventDate, 11, 2) & ":" & Mid(dtmEventDate, _
                    13, 2))
End Function
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  PAUSE Imprimante VBS Windows 2000

 

Sujets relatifs
modifier un fichier texte en VBSExportation / Tables temporaires dans Sql Server 2000
probleme completement inexplicable avec les sockets sous windows c++thread sous windows
Synthaxe de la commande include en VBS???Liste applications installées sous Windows XP
Test spooler imprimanteMacro sql Access 2000
Lex et Yacc sous windows avec VC++ 6.0 ?Ftp_*list sur serveur windows en PHP 5
Plus de sujets relatifs à : PAUSE Imprimante VBS Windows 2000


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR