Что нового

[Процессы] Завершить процесс 111.exe если запущен 222.exe

dimkot

Новичок
Сообщения
6
Репутация
0
Собственно, как убить процесс 111.exe с отсечкой в три секунды, если запустился 222.exe?

Зачем это нужно?
Есть такая надоедливая приблуда под названием "Игровой центр @ Mail.Ru", который является лаунчером для игр. Из Игрового центра запускается игра в виде Game.exe, после запуска которой, всегда приходится ручками закрывать сам лаунчер, тыкая по значку в трее или нажимая кнопки в окне самого ИЦ. Это часто напрягает, ибо игра (Game.exe) запускается как правило в полноэкранном режиме и в первую минуту загрузки, откровенно говоря, "висит" - её тяжело свернуть. Плюс ко всему, эта надоедливая сволочь (ИЦ) имеет свойство запускаться в несколько процессов с разными PID и на слабых машинах при закрытии через трей некоторые процессы остаются висеть и продолжают жрать память.

Сейчас юзаю следующий простой скриптик, запускаемый ярлыком с рабочего стола:
Код:
#NoTrayIcon
ProcessClose ("GameCenter@Mail.Ru.exe")
Exit


Конечно же всё работает, убивается на ура. Копий процесса не остаётся. Но неудобно постоянно сворачивать игру, тыкать в этот ярлык и снова возвращаться к игре!

Так вот, нужно "запилить" такой скрипт, который будет работать в качестве службы и выполнять следующее: как только появляется процесс Game.exe - допустим, с отсечкой в три секунды он должен убить GameCenter @ Mail.Ru.exe

После принудительного завершения (убивания) процесса Игрового центра, в трее остаётся иконка, которая пропадает только после наведения курсора на неё. На форуме обсуждались подобные вопросы, но ни один из описанных методов в этой ситуации не помогает или не подходит.

А ещё есть мысль сделать некий лаунчер для этого надоедливого Игрового центра. Да, как бы смешно это не звучало, лаунчер для лаунчера. Для чего? Чтобы запускать игру в один клик! Но это уже совсем другая история...

P.S. Рабочего примера по данному вопросу на просторах сообщества не нашёл, поэтому создал тему.
 

edyapd

Осваивающий
Сообщения
380
Репутация
30
Насколько я помню, раньше все игрушки от Mail можно было запустить напрямую. И загрузчик нужен только для обновления. Так может быть существует какой-то способ проверять есть обновление или нет. Если есть запускать загрузчик. И потом убивать его процесс при запуске игры. А если обновления нет, то сразу запускать игру.
Хотя я последний раз играл года четыре назад, может чего уже с тех пор поменялось.
 
Автор
D

dimkot

Новичок
Сообщения
6
Репутация
0
joiner сказал(а):
Код:
While 1
	If ProcessExists('222.exe') Then
		If ProcessExists('111.exe') Then
			Sleep(3000)
			ProcessClose('111.exe')
			Exit;если нужен выход
		EndIf
	EndIf
	Sleep(100)
WEnd
на остальные вопросы в других темах

joiner сказал(а):
Cornet [?]
Я бы так написал.
можно и так. обрамить это все в цикл, чтобы не кликать каждый раз по ярлыку
Спасибо! Основной вопрос решён. Чтобы не разводить флуд, тему можно закрывать. Остальные вытекающие вопросы будем задавать в отдельных темах.

edyapd сказал(а):
Насколько я помню, раньше все игрушки от Mail можно было запустить напрямую. И загрузчик нужен только для обновления. Так может быть существует какой-то способ проверять есть обновление или нет. Если есть запускать загрузчик. И потом убивать его процесс при запуске игры. А если обновления нет, то сразу запускать игру.
Хотя я последний раз играл года четыре назад, может чего уже с тех пор поменялось.
Может быть раньше оно так и было, но сейчас, увы - нет.
В моём случае игрушка - Warfaсe. Её никак нельзя запустить без Игрового центра, т.к. это задумано на уровне механики игры. Как я понял, при старте игры через ИЦ происходит проверка целостности дистрибутива и подтверждение авторизации. И только потом ИЦ запускает саму игру. На форуме есть "лаунчер-виселка" для Warface, но он уже давно не работает, т.к. мыло постоянно меняет и усложняет методы аутентификации через ИЦ.
 
Верх