Vbs как закрыть программу

Как закрыть/закончить/убить экземпляр приложения с помощью VBS? Я пробовал следующий код, предлагаемый на нескольких постах, и он не работал.

Set x = GetObject(,»xxx.Application»)
x.quit
спросил(а) 2018-09-08T05:44:00+03:00 4 года, 9 месяцев назад
добавить комментарий
пожаловаться

Я думаю, что я использовал WMI в какой-то момент, и это сработало нормально — при условии, что скрипт работает с правами доступа, необходимыми для уничтожения рассматриваемых процессов (другими словами, права администратора для системных процессов, права пользователя для процессов пользовательского контекста), я полагаю, быть привилегиями NT/правами NT (системные привилегии), а также настраиваемые пользовательские параметры разрешений ACL (список контроля доступа — прикрепленные к объектам) — конфигурация которых может варьироваться от сайта к сайту):

Примечание: the below script will kill all Notepad.exe processes! (unless access is denied) the below script will kill all Notepad.exe processes! (unless access is denied)

Как отключить VBS на Windows 11


strComputer = «.»
Set objWMIService = GetObject(«winmgmts:» _
!\» «rootcimv2»)

Set colProcessList = objWMIService.ExecQuery _
(«Select * from Win32_Process Where Name = ‘Notepad.exe'»)

For Each objProcess in colProcessList
objProcess.Terminate()
Next

    Закройте приложение, используя VBScript (несколько других опций) Убейте процесс, в котором говорится, что «Access denied» (auperuser — Terminate Process ACL) Неустранимые процессы

Источник: progi.pro

Закройте приложение, используя VBScript

Я пытался открыть и закрыть приложение.
Я пробовал вот так:

Dim App1 Set App1 = CreateObject(«WScript.Shell») App1.Run(«firefox») App1.Quit

Firefox откроется, но он не будет закрыт.

Сообщение об ошибке:

объект не поддерживает это свойство или метод

Скажите, пожалуйста, как закрыть приложение.

Если вы хотите иметь возможность завершить процесс таким образом, вам нужно использовать метод Exec вместо метода Run .

Set ff = CreateObject(«WScript.Shell»).Exec(«firefox») ‘you do stuff ff.Terminate

Я заметил несколько способов:

    taskkill – Работает только в том случае, если я пытаюсь убить тот же процесс, что и я.
Читайте также:
Название программы для осуществления связи между компьютерами

Dim oShell : Set oShell = CreateObject(«WScript.Shell») oShell.Run «»»C:My_Scriptsddl.exe»» -p1 -c» ‘some code oShell.Run «taskkill /f /im ddl.exe», , True
Dim oShell : Set oShell = CreateObject(«WScript.Shell») filename = «C:Some_file.txt — Notepad» act = oShell.AppActivate(fileName) oShell.SendKeys «% C»
Set objWMIService = GetObject(«winmgmts:» _ !\.rootcimv2″) Set colProcessList = objWMIService.ExecQuery _ («Select * from Win32_Process Where Name = ‘Chrome.exe'») Set oShell = CreateObject(«WScript.Shell») For Each objProcess in colProcessList oShell.Run «taskkill /im chrome.exe», , True Next

Скинул WinLock школьнику + мамка

Firefox не является COM-объектом. Нет COM-объекта Firefox. Firefox не хочет, чтобы вы использовали COM. Или NET. Или Microsoft.

Вот почему вы не могли создать объект Firefox, поэтому вместо этого вы создали объект WScript.Shell.

WScript.Shell не имеет метода quit. Если бы это произошло, это не помогло бы убить Firefox.

Это пример использования WMI из VBS для запуска, а затем убить процесс, например Firefox.

Вот альтернативная реализация VBScript:

strComputer = «.» Set objWMIService = GetObject(«winmgmts:» _ !\» «rootcimv2») Set colProcessList = objWMIService.ExecQuery _ («Select * from Win32_Process Where Name = ‘Notepad.exe'») For Each objProcess in colProcessList objProcess.Terminate() Next

Хорошая работа для этого примера:

Dim oShell : Set oShell = CreateObject(«WScript.Shell») oShell.Run «»»C:My_Scriptsddl.exe»» -p1 -c» ‘some code oShell.Run «taskkill /f /im ddl.exe», , True

Источник: techarks.ru

Вопрос по vbs, как закрыть определённый процесс при его появлении в диспетчере задач?

Код срабатывает если присутствует процесс в диспетчере задач,если нет то закрывается с ошибкой.
Проблема заключается в том что процесс который надо закрыть появляется через через минуту ,а скрипт запущен раньше,тоесть он просто выключается .
Можно ли как то сделать чтобы скрипт повторял действия до появления процесса ,а после успешного закрытия завершал работу,при этом желательно без запущеного чёрного окошка с задачей?

  • Вопрос задан более трёх лет назад
  • 3446 просмотров
Читайте также:
Как писать бот программы

1 комментарий

Средний 1 комментарий

Отредактируйте вопрос, описав вашу конечную задачу — что и при каких условиях вам нужно убивать. Потому что, похоже, вам нужно пересмотреть сам принцип работы (использовать планировщик заданий по условиям, например).

Решения вопроса 0
Ответы на вопрос 1
Developer, ex-admin
От консольного окна можно избавиться запуская скрипт с помощью wscript:
wscript

Консольное окно от taskkill можно скрыть запуская команду так:
oShell.Run «taskkill /im update_notepad.exe», 1, True

На счет ожидания: метод Run объекта WScript.Shell возвращает код возврата запускаемого приложения.
Если taskkill умеет сам сигнализировать о проделанной работе, то можно в цикле вызывать taskkill и анализировать код возврата, до тех пор пока по коду не станет ясно, что процесс удален.
Вам нужно самому выяснить коды возврата taskkill, сделать это можно с помощью простого батника, анализируя errorlevel после вызова taskkill. В документации я нигде кодов возврата taskkill не встречал.

Если же taskkill не использует коды возврата (многие стандартные виндовые утилиты пренебрегают этим средством), то задача усложняется.
Один из вариантов — анализировать вывод taskkill, с помощью find или findstr и ловить их код возврата (эти утилиты точно сообщают в коде возврата, что строка найдена или не найдена).
Другой вариант — сначала выяснить с помощью tasklist запущен ли ваш процесс и только потом вызывать taskkill.

И не забывайте делать паузы между вызовами taskkill, т.к. эта карусель без пауз отожрет у вас изрядно процессорного времени.

Источник: qna.habr.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru