Quelle est la bonne façon de fermer/arrêter les programmes à partir de la ligne de commande, similaire à appuyer sur le bouton de fermeture "X" dans le coin de la fenêtre?
La réponse à cette question peut être trouvée ici
(lien Microsoft).
Vous pouvez envoyer des messages _WM_CLOSE
à n'importe quelle fenêtre que vous souhaitez fermer. De nombreuses fenêtres gèrent WM_CLOSE
_ pour demander à l'utilisateur de sauvegarder des documents.
Un outil qui le fait correctement est @Kill
. Regardez aussi SendMsg.
Je ne sais pas comment faire cela en batch, mais vous pourriez utiliser le vbscript pour cela. En simulant les touches Alt + F4 (équivaut à un signal _WM_CLOSE
_).
Exécutez et regardez le comportement de ce script ci-dessous.
Set WshShell = WScript.CreateObject("WScript.Shell")
' Démarrer Notepad.exe
WshShell.Run "%windir%\notepad.exe"
' Sélectionnez, ou mettez le focus sur une fenêtre nommée `Notepad`
WshShell.AppActivate "Notepad"
' Attendre 4 secondes
WScript.Sleep 4000
WshShell.SendKeys "Foo"
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "Bar"
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "{CAPSLOCK}"
WshShell.SendKeys "baz"
WshShell.SendKeys "%{F4}"
Ici
se trouve la liste des noms de touches pour SendKeys.
Lorsque vous exécutez le script, le notepad est ouvert, quelques mots sont écrits et ensuite un signal pour fermer le programme est envoyé, voir l'image ci-dessous.
Questions supplémentaires
Puis-je démarrer un programme en mode réduit, ou en arrière-plan avec le vbscript?
Oui. Utilisez le code suivant:
WshShell.Run "%windir%\notepad.exe", 2
Pour plus d'informations, consultez la Méthode Run
.
Chrome peut-il aller sur une URL spécifique avec vbscript?
Dim iURL
Dim objShell iURL = "www.google.com"
set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "chrome.exe", iURL, "", "", 1
Si Chrome est le navigateur par défaut, utilisez:
set objShell = CreateObject("WScript.Shell")
objShell.run(iURL)
<a href="https://stackoverflow.com/a/13401872/1608936"><code>Source</code></a>
Y a-t-il un moyen de mettre le focus sur une application spécifique (chrome.exe)?
Voici
un exemple.
Je veux envoyer alt+F4 UNIQUEMENT à Chrome, indépendamment de ce que je fais avec d'autres fenêtres.
Le code suivant fonctionne sur Windows 8.
Dim objShell
iURL = "www.google.com.br"
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run(iURL)
' Sélectionnez, ou mettez le focus sur Google Chrome
WshShell.AppActivate "Google Chrome"
' Attendre 5 secondes
WScript.Sleep 5000
WshShell.SendKeys "%{F4}"