Что нового

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

dimkot

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

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

Сейчас юзаю следующий простой скриптик, запускаемый ярлыком с рабочего стола:
Код:
#NoTrayIcon
ProcessClose ("[email protected]")
Exit


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

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

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

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

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

joiner

Модератор
Локальный модератор
Сообщения
3,385
Репутация
592
Код:
While 1
	If ProcessExists('222.exe') Then
		If ProcessExists('111.exe') Then
			Sleep(3000)
			ProcessClose('111.exe')
			Exit;если нужен выход
		EndIf
	EndIf
	Sleep(100)
WEnd
на остальные вопросы в других темах
 

Cornet

Знающий
Сообщения
40
Репутация
6
Я бы так написал, если предполагается писать лаунчер лаунчера.
Код:
ProcessWait ('222.exe')
If ProcessExists('111.exe') Then
	Sleep(3000)
	ProcessClose('111.exe')
EndIf
 

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, но он уже давно не работает, т.к. мыло постоянно меняет и усложняет методы аутентификации через ИЦ.
 
Верх