Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - завершении процессов при их запуска.

Ответить
Настройки темы
CMD/BAT - завершении процессов при их запуска.

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Подскажите как реализовать следующее
1. "поиск" несколько запущенных процессов ( от 3 шт). Например процесс: procexp64.exe, steam.exe, PotPlayerMini64.exe;
2. если нашли процессы то их завершение;
3. зациклить "скрипт" что бы постоянно работало.

Отправлено: 09:43, 03-05-2022

 

Ветеран


Contributor


Сообщения: 2706
Благодарности: 1684

Профиль | Отправить PM | Цитировать


Вы хотели CMD ...
Код: Выделить весь код
@Echo Off
cls
:Begin
	Set PgmKill="procexp64.exe" "steam.exe" "PotPlayerMini64.exe" "chrome.exe" "mspaint.exe" "calc.exe" "notepad.exe"
	Set "SFind=/I"
	For %%i In (%PgmKill%) Do Call Set "SFind=%%SFind%% /C:%%i"
	FOR /F "usebackq delims= " %%i IN (`2^>nul TaskList ^|FindStr %SFind%`) DO TaskKill /F /IM "%%i"
	>nul TimeOut /T 5
GoTo :Begin
Exit /B

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:39, 03-05-2022 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Забанен


Сообщения: 346
Благодарности: 64

Профиль | Цитировать


megaloman

Привет. А случаем не знаешь способ, закрывать процессы что в трей свёрнуты? Именно закрывать , а не убивать. Убивать мы можем. Таким как ты показал выше и другими способами. Но всё это сводится к kill . А как-бы\можно-ли WM_Close...
В общем, вопрос такой: можно ли, скриптами PS\WB\JS и др. находить окна программ свёрнутых в трей и корректно(выход) их закрывать?

Отправлено: 19:27, 03-05-2022 | #3


Ветеран


Contributor


Сообщения: 2706
Благодарности: 1684

Профиль | Отправить PM | Цитировать


wasp14, ИМХО, корректно - только через интерфейс софта, общей панацеи, ИМХО, быть не может. Можно, наверное, думать о каждой конкретной программе и искать способ её закрать корректно, подозреваю, через AutoIt. Но я не владею ...

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 20:03, 03-05-2022 | #4


Забанен


Сообщения: 346
Благодарности: 64

Профиль | Цитировать


Такие же, примерно, ответы всегда и получал на разных форумах. Да и сам к такому же пришёл, когда почитал, что такое, эти-самые "свёрнутые в трей программы". Там и окна уних выгружаются\скрываются и вообще ГУЙ толи выгружается совсем, то-ли в ФП сбрасывается принудительно... это особый режим, что должен быть заложен кодером, т.е. вообще не просто-так это, свернуть в трей. Это не просто "икнока в трее", как делают принудительно программы типа WinRoll. Давно читал.
Благодарю за ответ.

Отправлено: 20:16, 03-05-2022 | #5


Аватара для Fors1k

Старожил


Сообщения: 193
Благодарности: 112

Профиль | Отправить PM | Цитировать


Цитата wasp14:
можно ли, скриптами PS\WB\JS и др. находить окна программ свёрнутых в трей »
Да, скриптом PS можно получить информацию из трея всего одной командой.
Для этого установите модуль psClick в PowerShell.

Запросить весь список содержимого трея:
Код: Выделить весь код
Get-TrayInfo 
Так будет выглядеть результат:
Код: Выделить весь код
IconText                                                          IconHandle   Pid IsVisible
--------                                                          ----------   --- ---------
Bandicam                                                             5706888 10680      True
GPU: 51C...                                                            66340  9384      True
Сеть...                                                                66180  6892      True
Telegram Desktop                                                     1510712 30572      True
Безопасность Windows - Рекомендуемые действия.                        131190  9056     False
Яндекс.Диск 3.2.17.4580...                                            196702 20184     False
Диспетчер Realtek HD                                                  131138  6676     False
TeamViewer - 123321456                                                131582 10444     False
Plex Media Server                                                      66410 10600     False
Yandex                                                              16454274 15648     False
GIGABYTE XTREME GAMING ENGINE                                          68548 10400     False
Java Update Available                                                 727034 26088     False
Настройки NVIDIA                                                      394054  5596     False
Можно посмотреть, например, данные по температуре с иконки программы SpeedFan:
Код: Выделить весь код
Clear-Host
# Запросить весь список содержимого трея
$tray = Get-TrayInfo

# Найти PID приложения SpeedFan
$speedFanId = (Get-Process SpeedFan).Id

# Выбрать из списка трея приложение SpeedFan 
$speedFanTray = $tray|Where Pid -eq $speedFanId

# Вывести на экран текст с иконки
$speedFanTray.IconText 
Результат:
Код: Выделить весь код
GPU: 47C
CPU: 41C
Core 0: 37C
Core 1: 36C
Core 2: 34C
Core 3: 35
Цитата wasp14:
корректно(выход) их закрывать »
Найти в трее приложение Telegram, и "корректно" закрыть его командой Close-Window :
Код: Выделить весь код
Clear-Host
# Запросить весь список содержимого трея
$tray = Get-TrayInfo

# Найти PID приложения Telegram
$telegramId = (Get-Process Telegram).Id

# Выбрать из списка трея приложение Telegram 
$telegramTray = $tray|Where Pid -eq $telegramId

# Закрыть Telegram
Close-Window $telegramTray.IconHandle 
Если какая-либо программа не будет закрываться, то добавьте усиливающие параметры команды Close-Window. У самих программ могут отличаться способы их закрытия.

Последний раз редактировалось Fors1k, 17-05-2022 в 16:47.

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:25, 05-05-2022 | #6


Забанен


Сообщения: 346
Благодарности: 64

Профиль | Цитировать


Какой крутяк Fors1k !
Счас надо проверить, попробовать и наконец-то, через ~12 лет заюзать Винду как хочется
Вкратце: суть в том, что давно уже написал скрипт запуска нужных програм. Все они, кроме TC, заводятся(из ТС живут внутри TC живут на флешках в таком же сборе и на компе домашнем. везде одна структура папок, где ./ выступает %COMMANDER_PATH%) и "живут в трее"; это всякие punto , clipdiary, winroll и т.д. штук 8 всего. Т.с. свой набор.

И (такое редко бывает, но всё же) когда заводишь игру, хочется так же просто закрыть всё это, что ранее заводил. И вот тут приходистя по-одному их закрывать. Опережая надмозгов: дело не в памяти и не в проц.времени, дело в том что половина их, глобальные хуки клавиш делают. А играю я в шутеры или стратегии, где свои действия на эти действия.

Отправлено: 14:07, 06-05-2022 | #7


Аватара для sonny362

Старожил


Сообщения: 295
Благодарности: 38

Профиль | Отправить PM | Цитировать


wasp14, у меня где-то в архивах валяется текст программы на C#, умеющей это делать (она Google Drive рестартовала). Надо?
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:16, 06-05-2022 | #8


Забанен


Сообщения: 346
Благодарности: 64

Профиль | Цитировать


sonny362, благодарю, даж яхз :-) Если там можно несколько, список закрыть(написана ф-ция ибо я и жабаскрипт знаю на 3+, а C# вобще никак) давай конечно(личку, архив... как удобно).
Заполучить такую прожку былоб отлично. Я б даже C# освоил, основы, чтоб доделать такую прожку. Скрипт попробую что выше предложили... мож получится то, что давно желал: простая программа, что запускает по-списку(допустим лежит рядом с ней .cfg, .ini, .list) и по этому же списку(имени процесса) закрывает программы. Запуск с параметрами -start или -close и сё. Обычные окна можно скриптом закрывать, а вот с "треем" сложности.
Уже и винды четыре поколения сменилось, а такой проги всё нет и нет.

Отправлено: 14:38, 06-05-2022 | #9


Аватара для sonny362

Старожил


Сообщения: 295
Благодарности: 38

Профиль | Отправить PM | Цитировать


wasp14,
Да там всё просто, как угол дома (на всякий случай, исходный копирайт не мой - нашёл когда-то где-то на просторах и доработал):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace StartStopGDrive
{
class Program
{
static void Main(string[] args)
{
Process[] procs = Process.GetProcesses();
foreach (Process proc in procs)
{
if (proc.ProcessName == "Google Drive")
proc.Kill();
}
Process.Start(@"C:\Program Files\Google\Drive File Stream\launch.bat");
}
}
}

Последний раз редактировалось sonny362, 06-05-2022 в 15:34.


Отправлено: 15:17, 06-05-2022 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - завершении процессов при их запуска.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - [решено] Завершение всех процессов с одинаковым именем, если их больше 2 santey007 Скриптовые языки администрирования Windows 13 03-02-2020 07:24
Прочие - Всплывающие сообщения при запуске и завершении процессов/программ sceatch Программное обеспечение Windows 0 27-07-2013 11:26
Статья - Ускорение запуска системы и автозагрузка процессов - Программа Startup Delayer 3.0 xiNeo Хочу все знать 0 24-06-2012 15:22
CMD/BAT - [решено] Ожидание процессов с разной поледовательностью запуска для их завершения. Devils Night Скриптовые языки администрирования Windows 7 07-04-2012 10:59
Службы - служба запуска серверных процессов DCOM Basala Microsoft Windows 2000/XP 3 06-05-2010 12:56




 
Переход