What is the proper way to close/exit programs from command line,
similar to pressing the "X" close button in the corner of the window?
Ответ на этот вопрос можно найти here
(Microsoft link).
Вы можете отправить `WMCLOSE_ сообщения в любое окно, которое хотите закрыть. Многие окна обрабатывают _
WMCLOSE`, чтобы подтолкнуть пользователя к сохранению документов.
Инструментом, который делает это правильно, является @Kill
. Посмотрите также SendMsg .
Я не знаю, как это сделать пакетно, но для этого можно использовать vbscript. Моделирование клавиш Alt + F4 (равносильно сигналу `WMCLOSE`_).
Запустите и посмотрите на поведение этого скрипта ниже.
Set WshShell = WScript.CreateObject("WScript.Shell")
' Start Notepad.exe
WshShell.Run "%windir%\notepad.exe"
' Select, or bring Focus to a window named `Notepad`
WshShell.AppActivate "Notepad"
' Wait for 4 seconds
WScript.Sleep 4000
WshShell.SendKeys "Foo"
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "Bar"
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "{CAPSLOCK}"
WshShell.SendKeys "baz"
WshShell.SendKeys "%{F4}"
Here
- это список имен клавиш для SendKeys.
Когда вы запускаете скрипт, notepad открыт, некоторые слова написаны, а затем сигнал к закрытию программы, см. рисунок ниже.
Дополнительные вопросы
Могу ли я запустить программу в свернутом виде, или в фоновом режиме с помощью vbscript?
Да. Используйте следующий код:
WshShell.Run "%windir%\notepad.exe", 2
За дополнительной информацией обращайтесь к Run Method
.
** Может ли хром перейти на url в vbscript?**
Dim iURL
Dim objShell iURL = "www.google.com"
set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "chrome.exe", iURL, "", "", 1
Если по умолчанию используется хром, используйте:
set objShell = CreateObject("WScript.Shell")
objShell.run(iURL)
Source
И есть способ сфокусировать внимание на конкретном приложении (chrome. exe)?
Here
в примере.
** Я хочу отправить alt+f4 ТОЛЬКО в chrome, независимо от того, что я делаю с другими окнами.**
Следующий код работает с Windows 8.
Dim objShell
iURL = "www.google.com.br"
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run(iURL)
' Select, or bring Focus to Google Chrome
WshShell.AppActivate "Google Chrome"
' Wait for 5 seconds
WScript.Sleep 5000
WshShell.SendKeys "%{F4}"