IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Verifier en permanence le PrinterStatus !


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 15
    Par défaut Verifier en permanence le PrinterStatus !
    Bonjour à la communauté VB,

    Je suis apprenti développeur en php. Je découvre le VBS aujourd'hui et
    je sollicite donc votre aide pour parvenir à vérifier de manière permanente le PrinterStatus.

    Je m'explique, j'ai fait le script ci-dessous. Seulement je voudrais détecté l'évènement "Imprimer". Je fait des tests virtuel avec PDFCreator.
    C'est à dire quand le PrinterStatus passe à "4" d'aprés => http://msdn.microsoft.com/en-us/library/Aa394363

    Je ne comprend pas comment vérifier en permanence ou créer cet évènement.
    (qui déclenchera bien sur de nouvelles instructions).

    J'ai pensé au vbs car il faudrait que ce script tourne en tache de fond et sur un conseil de quelqu'un, mais n'importe quel langage fera l'affaire...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    Option Explicit
    Dim objWMIService, objItem, strComputer, intPrinters, printer, chaine
     
    strComputer ="."
    chaine=""
     
    Set objWMIService = GetObject _
    ("winmgmts:\\" & strComputer & "\root\CIMV2")
    Set printer = objWMIService.ExecQuery _
    ("SELECT * FROM Win32_Printer WHERE Name = 'PDFCreator' ")
     
    Call Wait() 
     
    For Each objItem In printer
    WScript.Echo "Printers on " _
    & objItem.name & ", Printer Number: " & VbCr & _
    "====================================" & VbCr & _
    "Availability: " & objItem.Availability & VbCr & _
    "Description: " & objItem.Description & VbCr & _
    "Printer: " & objItem.DeviceID & VbCr & _
    "Driver Name: " & objItem.DriverName & VbCr & _
    "Printer State: " & objItem.PrinterState & VbCr & _
    "Printer Status: " & objItem.PrinterStatus & VbCr & _
    "Status: " & objItem.Status & VbCr & _
    "StatusInfo: " & objItem.StatusInfo & VbCr & _
    "ShareName: " & objItem.ShareName & VbCr & _
    ""
    Next
     
    sub Wait()
    If strComputer = "." then
    strComputer = "Local Host"
    else strComputer = strComputer
    end if
     
    End Sub
     
    WScript.Quit

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 15
    Par défaut
    Pour information je pense avoir saisi ce qu'il fallait que je fasse...

    Je dois détecter en réalité le changement du PrinterStatus de 3 à 4.

    J'ai appris à utiliser le timer pour boucler infiniment, seulement je n'arrive pas à boucler correctement dessus. Mes tests se révèlent tous avec une erreur...

    un exemple de ce que j'ai tenté de mieux je pense...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    sub checkStatus()
    	For Each objItem In printer
    		'On recup le statut de l'imprimante
    		i = objItem.PrinterStatus
    	Next
    	WScript.Sleep 200
    	'Si ca vient de passer de 3(idle) à 4(printing)
    	If j < i  Then 
    			'Mes instructions... 
    	End if 
    	j = i
    	call checkStatus()
    End Sub
    Call checkStatus()
    En fait c'était pas tout à fait ça... a priori je recherche à savoir si un document à été ajouté au "spooler" (dont je viens de découvrir l'existence) et connaitre l'état de ce doc.
    J'espère que ça illuminera quelqu'un parce que je me sens seul là

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 15

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Verifier qu'une connexion ado s'est bien déroulé
    Par Hell dans le forum Bases de données
    Réponses: 5
    Dernier message: 22/06/2004, 10h55
  2. [langage] vérifier les caractères d'une chaîne
    Par perlaud dans le forum Langage
    Réponses: 2
    Dernier message: 24/05/2004, 16h43
  3. [langage] vérifier une adresse email
    Par GMI3 dans le forum Langage
    Réponses: 10
    Dernier message: 19/10/2003, 18h06
  4. schema xml + xml qui va avec, comment verifier?
    Par Slash dans le forum Valider
    Réponses: 4
    Dernier message: 02/03/2003, 11h16
  5. Verifier qu'un dossier existe (batch)
    Par kakou dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 08/01/2003, 13h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo