1 votes

(VBS) comment tuer une tâche lorsque qu'une fenêtre spécifique apparaît?

Dans mon VBScript, j'ai besoin de taskkill le processus example.exe lorsque SPECIFICWINDOW apparaît (le nom de la fenêtre est différent du nom du processus) et j'ai besoin que cette commande soit prête lorsque SPECIFICWINDOW apparaît.

Comment puis-je faire cela, car j'ai terminé le .vbs avec :

Dim oShell

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

oShell.Run "taskkill /fi ""WINDOWTITLE eq the example.exe""", , True

Mon script actuel est comme ça :

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run """C:\Program Files (x86)\Example\example test.exe" 
WScript.Sleep 5000
WshShell.SendKeys "{ENTER}"
WScript.Sleep 3000
WshShell.SendKeys "{ENTER}"
WScript.Sleep 3000
WshShell.SendKeys "{ENTER}"

Const TimeToAllowActivationToComplete = 10000 ' 
Wscript.Sleep TimeToAllowActivationToComplete

Dim oShell
Set oShell = WScript.CreateObject ("WScript.Shell")
oShell.Run "taskkill /fi ""WINDOWTITLE eq example test""",, True

J'ai défini TimetoAllowActivationToComplete car je ne peux pas faire taskill example test.exe après l'apparition de la fenêtre spécifique ("Fin de l'opération").

0voto

Someone Points 247

Vous pouvez utiliser AppActivate dans une boucle pour vérifier cette fenêtre spécifique. Une fois trouvée, utilisez ensuite TaskKill pour tuer l'exécutable :

Set oWSH = WScript.CreateObject("WScript.Shell")
Do Until WindowFound
  WindowFound = oWSH.AppActivate("Fin de l'opération")
  WScript.Sleep 500
Loop
oWSH.Run "TaskKill /f /im example.exe",0,True

0voto

Yorik Points 3956

Le problème est que lorsque vous utilisez le filtre WINDOWTITLE, vous devez fournir le titre de la fenêtre ("Fin de l'opération") et non le nom de l'exécutable. De plus, si le nom de la fenêtre change ou ajoute des informations supplémentaires, le eq pourrait échouer car une correspondance partielle n'est pas égale. Je pense que vous pouvez utiliser * pour une correspondance partielle (cat* correspond à "cat", "catch"; *cat* correspond à "cat", "un chat", "zcatapult")

Si vous souhaitez arrêter l'exécutable spécifique par son nom, alors vous devez utiliser le filtre IMAGENAME à la place.

Documentation

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X