Как правильно закрыть / закрыть программы из командной строки, аналогично нажатию кнопки закрытия «X» в углу окна?
Я пытаюсь закрыть Chrome под 3 различными версиями Windows: Win7 Ultimate, Win7 Home, WinXP
Под Ultimate и XP: TSKILL chrome
Под домом TASKKILL /IM chrome.exe
TSKILL chrome
:
(Он закрывает chrome, нет ошибок cmd,
но при повторном запуске восстанавливается ошибка chrome )
TASKKILL /IM chrome.exe
:
(Он закрывает Chrome, нет ошибок Chrome при повторном запуске,
но ошибки в cmd: «невозможно завершить дочерние процессы (около 4-5), только принудительно с помощью /F
»)
Должен ли я игнорировать дочерние ошибки cmd, если при повторном запуске Chrome не показывает ошибок ?
windows
command-line
neoDev
источник
источник
Ответы:
Правильный способ закрыть / закрыть программу в конечном итоге зависит от программного обеспечения. Однако, как правило, рекомендуется закрывать программы Windows всякий раз, когда они получают сообщение WM_CLOSE. Правильно освобождая память и закрывая ручки. Существуют и другие сообщения, которые могут сигнализировать о закрытии приложения, но как автор обрабатывает каждое сообщение, зависит от автора программного обеспечения.
taskkill отправляет сообщение WM_CLOSE, и затем дело за приложением, правильно ли закрыть. Вы также можете использовать эту
/T
опцию для сигнализации дочерних процессов.Используйте эту
/F
опцию, только если вы хотите принудительно завершить процесс.Другие варианты включают отправку клавиш Alt + F4, использование PowerShell или сторонних приложений.
Обновить до обновленного вопроса
Проигнорируйте ошибки. Хром генерирует много процессов. Ошибки возникают, когда процесс не подтверждает сообщение WM_CLOSE, которое отправляет TASKKILL. Только процессы с циклом сообщений смогут получать сообщение, поэтому процессы, у которых нет цикла сообщений, будут генерировать эту ошибку. Скорее всего, эти процессы являются расширениями и плагинами Chrome.
Чтобы скрыть ошибки захвата вывода
Описание: TASKKILL - это правильный способ с помощью командной строки закрывать приложения в соответствии с его реализацией WM_CLOSE и Microsoft KB, которую я связал .
источник
>
является оператором перенаправления для cmd.exe иnul
является пробелом, в котором больше ничего не слышно.Попробуйте NirCmd (Загрузить: x86 x64 )
Он имеет команду «closeprocess», которая предназначена для корректного закрытия процессов. Согласно его документу, он не завершает приложения, а отправляет
WM_CLOSE
все окна верхнего уровня целевого процесса.пример использования:
Если это не сработает, держу пари, в вашем приложении необычная процедура очистки. Я хотел бы посмотреть, что происходит внутри, поэтому, пожалуйста, дайте мне знать, какое у вас целевое приложение.
источник
Ответ на этот вопрос можно найти
here
( ссылка Microsoft ).Вы можете отправлять
WM_CLOSE
сообщения в любое окно, которое хотите закрыть. Многие окна обрабатывают,WM_CLOSE
чтобы предложить пользователю сохранить документы.Инструмент, который делает это правильно
@Kill
. Смотрите также SendMsg .Я не знаю, как сделать это в пакетном режиме, но вы могли бы использовать VBScript для этого. Имитация клавиш Alt+ F4(приравнивается к сигналу
WM_CLOSE
).Запустите и посмотрите на поведение этого скрипта ниже.
Here
это список ключей имен для SendKeys.Когда вы запускаете скрипт, блокнот открыт, некоторые слова пишутся, а затем подается сигнал о закрытии программы, см. Рисунок ниже.
Дополнительный вопрос
Можно ли запустить свернутую программу или фон с vbscript?
Да. Используйте следующий код:
Для получения дополнительной информации проверьте
Run Method
.Может ли Chrome перейти на какой-либо URL-адрес в VBScript?
Если по умолчанию используется chrome, используйте:
Source
Есть ли способ привлечь внимание к конкретному приложению ( chrome.exe )?
Here
в примере.Я хочу отправить alt + f4 ТОЛЬКО в Chrome, независимо от того, что я делаю с другими окнами.
Следующий код работает на Windows 8 .
источник
Существуют некоторые утилиты командной строки, которые могут отправлять подходящее
WM_SYSCOMMAND
сообщение (SC_CLOSE
в качестве команды) в окно верхнего уровня программы. Я уверен, что по крайней мере один будет упомянут в ближайшее время. (Тогда кто-то упомянет AutoIt. Тогда будет ответ, показывающий, как это сделать с помощью PowerShell иCloseMainWindow()
.)Вызывается утилита командной строки, которая поставляется как встроенная команда в TCC JP Software , интерпретаторе команд и процессоре сценариев команд для Windows
TASKEND
.источник
Хорошо, не собираюсь лгать. Я видел это на stackoverflow и думал, что это сложный вопрос. Тааак я только что провел последние 2 часа, написав код. И вот оно ....
Выполнив следующие действия, вы можете набрать «TaskClose notepad.exe» после нажатия «Пуск», и он автоматически сохранит все недокументированные файлы блокнота на рабочем столе. Он автоматически закроет chrome.exe и сохранит настройки восстановления.
Вы можете добавлять и удалять дополнительные настройки для других приложений в условиях if. Например:
VBS и командные файлы выполняют следующие процедуры:
ReturnAppList.bat: установить в "C: \ windows \ system32 \"
TaskClose.bat: установить в «C: \ windows \ system32 \» И «C: \ Users \ YourUserName \»
TaskClose.vbs: установить в "C: \ windows \ system32 \"
Это было очень весело писать, и я больше рад закончить его, чем показывать ответ. Удачной недели!
источник