Страницы: 1
RSS
Закрыть приложение из командной строки средствами VBA
 
Вечер добрый всем !
Нужно закрыть приложение по командной строке windows средствами VBA
Вроде простая задача но почему так трудно ....
Почему именно так - нужно закрыть браузер Chrom при открытии нескольких независимых окон - сделать так чтобы закрыть все окна Chrom и выйти из браузера
Что имеем штатными средствами чтобы так сделать:
1) ключами после ..... /Chrome.exe  - нет таких ключей что дебильно ключей  туча и такого нет (полный список ключей на http://peter.sh/experiments/chromium-command-line-switches/)
2)Горячие клавиши Выход         Ctrl + Shift + q (Выход)  и Ctrl + Shift + w (Закрыть все открытые вкладки и браузер)  (  (https://support.google.com/chrome/answer/157179?hl=ru)   путем Application.SendKeys ("^+(w)") и Application.SendKeys ("^+(q)") не работает в VBA при скрытии нескольких окон браузера в трей - окна неактивны получается и горячие клавиши не помогут

Есть путь к файлу chrome.exe    C:\Program Files (x86)\Chrome\Chrome.exe  и процесс в диспетчере задач windows
Остается убить процесс в диспетчере чтоб все окна закрылись и выйти из Chrome

Как это сделать средствами VBA макросом ?  Есть конечно Taskkill - завершение процесса из командной строки(http://sys-team-admin.ru/videouroki/administrirovanie/86-taskkill-zavershenie-protsessa-iz-komandnoj...)   или по этому пути Shell ("c:\windows\system32\cmd.exe /c dir > C:\Program Files (x86)\Chrome\Chrome.exe") но как это сделать макросом или проще есть методы ?
Так не работает к сожалению Shell ("c:\windows\system32\cmd.exe Taskkill /f /im chrome.exe") и так Shell ("c:\windows\system32\cmd.exe /c dir > Taskkill /f /im chrome.exe") не получается
Изменено: fix555 - 16.02.2017 22:36:11
 
Забыл подробность  - у меня портабельный Chrome в директории с файлом  
пробую так - тоже не получается
Код
Set WshShell = CreateObject("WScript.Shell")
CheckRun = """" & ThisWorkbook.Path & "\ChomiumPortable\chrome.exe"""
Set WshExec = WshShell.Exec(CheckRun)
WshExec.Terminate
 
на блокнот работает так  -только терминальное окно иногда вылазит и скрытие в трей  - есть какие варианты ?
Код
Set WshShell = CreateObject("WScript.Shell")
CheckRun = "C:\Windows\System32\notepad.exe"
Set WshExec = WshShell.Exec(CheckRun)
WshExec.Terminate
Изменено: fix555 - 16.02.2017 23:15:40
 
Может через API SendMessage (WM_CLOSE) попробовать
 
получилось так - все работает
Код
Shell "cmd.exe /c " & "Taskkill" & " " & "/f" & " " & "/im" & " " & "chrome.exe"
Shell "cmd.exe /c " & "Taskkill" & " " & "/f" & " " & "/im" & " " & "opera.exe"
Изменено: fix555 - 17.02.2017 12:05:32
Страницы: 1
Наверх