Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[Résolu] Lancement du batch ...
Auteur Message
Répondre en citant
Message [Résolu] Lancement du batch ... 
Bonjour,

J'aimerais que mon batch se lance à la sortie de la mise en veille et à l'ouverture de l'ordinateur. (il ne me semble pas que ce sujet est été déjà abordé ici ..) Question

Idées que j'ai eu (elles ne sont pas toutes brillantes) : Idea

J'ai pensé à mettre le batch dans le Dossier Démarrage mais ce n'est pas très propre comme méthode et il faut que je teste ...( EDIT :ça ne marche que au démarrage de l'ordinateur ... pas pour la sortie de la mise en veille )

Alors j'ai aussi pensé à associer mon batch au fichier de sortie de mise en veille ( il y en a forcément un ... enfin j'espère ...)

-------------------------------------------------- ------------------------------------------------- -----------------------------------------------------------------
Bref je n'ai pas plus d'idée que ça pour ce soir ( je vais y réfléchir en détail demain ) ..

Mais si vous avez des pistes ou des idées ( pas forcément des solutions, je peux chercher au pire .. ) à me proposer je prends ( si on peut éviter les commandes externes ...)

Merci,

Julien_1



Dernière édition par Julien_1 le Dim 12 Oct 2014 - 11:13; édité 3 fois
Répondre en citant
Message [Résolu] Lancement du batch ... 
Salut Laughing
Ceci est réalisable grâce un vbscript trouvé ici

Code:
Set oShell = CreateObject("WScript.Shell")

Set colMonitoredEvents = GetObject("winmgmts:")._
ExecNotificationQuery("Select * from Win32_PowerManagementEvent")

Do
Set objLatestEvent = colMonitoredEvents.NextEvent

Select Case objLatestEvent.EventType

Case 4
' Launch Calc
oShell.Run "Calc.exe", 1, False
MsgBox "Entering suspend, Calc started", _
vbInformation + vbSystemModal, "Suspend"

Case 7
' To run a batch file hidden, you can do like this:
'oShell.Run """C:\My scripts\mybatch.bat""", 0, False
' Launch Notepad
oShell.Run "Notepad.exe", 1, False
MsgBox "Resuming from suspend, notepad started", _
vbInformation + vbSystemModal, "Suspend"

Case 11
MsgBox "OEM Event happened, OEMEventCode = " _
& strLatestEvent.OEMEventCode

Case 18
MsgBox "Resume Automatic happened"

End Select
Loop


Pour toute information a propos de ce script ou bien, sa modification pour vos besoins, juste vous me demander Okay Mr. Green




______________________________________________________
Répondre en citant
Message [Résolu] Lancement du batch ... 
Hello ! Very Happy
Merci Hackoo, j'ai en effet pas mal de question :

Ce code analyse donc tous les événements au fur et à mesure depuis son lancement et si il détecte une sortie de mise en veille alors il agit en conséquence,jusque là je suis bien ?? ( mais à quels événements correspondent les Case ? j'imagine que le 7 correspond à la mise en veille mais j'ai des doutes ...)

Voilà ce que j'ai compris ( je ne connais rien au vbscript à part MsgBox donc j'ai un peu de mal Embarassed ) :

1) - Variables :
Code:
Set oShell = CreateObject("WScript.Shell")

Set colMonitoredEvents = GetObject("winmgmts:")._


2) - Inconnu ( enfin je pense qu'il demande à recevoir quelque chose, une notification, un événement qui va ensuite servir ) :

Code:
ExecNotificationQuery("Select * from Win32_PowerManagementEvent")


3) - Début d'une boucle et affectation de variable et goto ( l'équivalent de goto :%objLatestEvent% ?? ) avec la variable objLatestEvent qui est de type événement :
Code:
Do
Set objLatestEvent = colMonitoredEvents.NextEvent

Select Case objLatestEvent.EventType


4) - Si la variable objLatestEvent renvoie 4 on vas à la Case 4 qui lance la calculatrice ( 1 c'est parce-qu'elle est visible ?, mais à quoi sert le false ??) et une MsgBox qui affiche un icone d'information et qui suspend tout jusqu’à ce que l'utilisateur réagisse et après on recommence la boucle .. :

Code:
Case 4
' Launch Calc
oShell.Run "Calc.exe", 1, False
MsgBox "Entering suspend, Calc started", _
vbInformation + vbSystemModal, "Suspend"


5) - Si la variable objLatestEvent renvoie 7 on lance le batch ( 0 veut dire qu'il est "invisible" ?, le false je ne sais pas peut-être désactive ne réponse de la part du programme ) puis on lance (en visible puisque 1) notepad et une MsgBox qui affiche un icône d'information et qui suspend tout jusqu’à ce que l'utilisateur réagisse et après on recommence la boucle .. :

Code:
Case 7
' To run a batch file hidden, you can do like this:
'oShell.Run """C:\My scripts\mybatch.bat""", 0, False
' Launch Notepad
oShell.Run "Notepad.exe", 1, False
MsgBox "Resuming from suspend, notepad started", _
vbInformation + vbSystemModal, "Suspend"


6) - Si la variable objLatestEvent renvoie 11 on affiche une MsgBox à laquelle on associe Ce qui est affiché dans la chaîne de caractère LatestEvent

Code:
Case 11
MsgBox "OEM Event happened, OEMEventCode = " _
& strLatestEvent.OEMEventCode


7) - Si la variable objLatestEvent renvoie 18 on affiche une MsgBox
Code:
Case 18
MsgBox "Resume Automatic happened"


8) - Fin de Select et de la boucle on repart au Do
Code:
End Select
Loop




J'ai du mal avec la partie 2) ( je sais il y a juste une ligne mais je ne la comprends pas entièrement ... ) et aussi avec les false à la fin de certaine ligne ... Neutral

Merci ( et désolé pour le pavé ),

Julien_1



Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Charte | Conditions générales d'utilisation
Copyright Batch 2008-2022