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

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

Ответить
Настройки темы
CMD/BAT - CMD/BAT - [решено] Скрипт для авто выключения одного приложения при ручном выключении

Аватара для vk_k14m@vk

Старожил


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


Конфигурация

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


Изменения
Автор: vk_k14m@vk
Дата: 18-03-2019
Однажды я уже задавал подобный вопрос, но нужного ответа тогда я так и не получил. Так что это моя вторая попытка.

Есть некая игра, назовем её MTA Province. И приложение для записи видео с экрана - Bandicam. Нужно создать скрипт, при запуске которого сначала должна запускаться игра, а потом через секунд 5 - приложение для записи видео. Приложение нужно просто запустить, авто запись в нём включается сама. Но это ещё не весь скрипт. Нужно что б скрипт всё ещё оставался активен и всё время отслеживал (желательно в свёрнутом виде), запущена ли игра или нет. И в случает выключения игры, скрипт должен так же выключить и программу для записи видео. Ну и сам скрипт после этого со спокойной душей тоже должен закрыться.

Думаю цель ясна. Запускаю игру - начинается запись видео. Выключаю игру - запись прекращается.

НО. Приложение для запуска игры, запускает иной процесс, и к тому же не один (Смотреть вложение).

Да и Bandicam, запускается одним приложением, но запускает другой процесс (Смотреть второе вложение).

И вот я не соображаю как написать этот скрипт. Надеюсь на понимает, и помощь от знающих людей. Информации НА ЭТОТ РАЗ я надеюсь дал достаточно...

-------
Взялся отвечать, отвечай до конца!


Отправлено: 23:29, 17-12-2018

 

Ветеран


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

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


Покажите то же самое, только скриншотами Process Explorer'а. Уточните, какие именно исполняемые файлы Вы запускаете для игры и для записи видео. Запишите видео, на котором покажите, как Вы делаете описанные выше действия вручную.

Отправлено: 23:56, 17-12-2018 | #2



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

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


Аватара для vk_k14m@vk

Старожил


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

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


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

-------
Взялся отвечать, отвечай до конца!


Отправлено: 00:00, 18-12-2018 | #3


Аватара для vk_k14m@vk

Старожил


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

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


А скриншот вот

-------
Взялся отвечать, отвечай до конца!


Последний раз редактировалось vk_k14m@vk, 18-03-2019 в 17:56.


Отправлено: 00:06, 18-12-2018 | #4


Ветеран


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

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


Покажите свойства того, чем Вы запускаете процессы «Multi Theft Auto.exe» и «bdcam.exe» (например, свойства ярлыков). Конкретно интересуют полный путь к исполняемому файлу, рабочий каталог, требуется ли запуск с административными привилегиями, передаваемые параметры и т.п.

Отправлено: 00:19, 18-12-2018 | #5


Аватара для vk_k14m@vk

Старожил


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

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


Исполняемые файлы:

"D:\Games\MTA Province\MTA\Multi Theft Auto.exe"
Скрытый текст

"C:\Program Files (x86)\Bandicam\Loader.exe"
Скрытый текст


В свойствах ярлыков галочка "Запуск от имени администратора" нигде не стоит.

Видео

-------
Взялся отвечать, отвечай до конца!


Отправлено: 00:31, 18-12-2018 | #6


Ветеран


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

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


vk_k14m@vk, за мельтешением картинок на Вашем Рабочем столе ничего разглядеть невозможно, ни где Вы возите мышкой, ни где что нажимаете. И большой баннер над панелью задач этому тоже не помогает.

Можете пробовать. На WSH:
Скрытый текст
Код: Выделить весь код
Option Explicit

Const strPath2GameProcess = "D:\Games\MTA Province\MTA\Multi Theft Auto.exe"
Const strPath2VideoRecordingProcess = "C:\Program Files (x86)\Bandicam\Loader.exe"
Const strName4StopProcess = "bdcam64.bin"


Dim objSWbemServicesEx
Dim objSWbemObjectEx

Dim objFSO

Dim lngGameProcessID
Dim lngVideoRecordingProcessID
Dim lngVideoRecordingParentProcessID


Set objSWbemServicesEx = WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2")
Set objSWbemObjectEx   = objSWbemServicesEx.Get("Win32_Process")

Set objFSO             = WScript.CreateObject("Scripting.FileSystemObject")

If objFSO.FileExists(strPath2GameProcess) Then
	If objFSO.FileExists(strPath2GameProcess) Then
		If objSWbemObjectEx.Create(strPath2GameProcess, objFSO.GetParentFolderName(strPath2GameProcess), Nothing, lngGameProcessID) = 0 Then
			WScript.Sleep 5 * 1000
			
			If objSWbemObjectEx.Create(strPath2VideoRecordingProcess, objFSO.GetParentFolderName(strPath2VideoRecordingProcess), Nothing, lngVideoRecordingProcessID) = 0 Then
				objSWbemServicesEx.ExecNotificationQuery( _
					"SELECT * FROM __InstanceDeletionEvent WITHIN 1 " & _
					"WHERE TargetInstance ISA 'Win32_Process' AND " & _
					"TargetInstance.ProcessID = " & CStr(lngGameProcessID) & "" _
				).NextEvent
				
				For Each objSWbemObjectEx In objSWbemServicesEx.ExecQuery( _
					"SELECT * FROM Win32_Process WHERE Name = '" & strName4StopProcess & "'" _
				)
					lngVideoRecordingParentProcessID = objSWbemObjectEx.ParentProcessID
					
					If objSWbemObjectEx.Terminate() = 0 Then
						If objSWbemServicesEx.Get("Win32_Process.Handle=" & CStr(lngVideoRecordingParentProcessID)).Terminate() = 0 Then
							
						Else
							WScript.Echo "Can't terminate process with PID [" & CStr(lngVideoRecordingParentProcessID) & "]."
						End If
					Else
						WScript.Echo "Can't terminate process with PID [" & CStr(objSWbemObjectEx.ProcessID) & "]."
					End If
					
					Exit For
				Next
			Else
				WScript.Echo "Can't execute process [" & strPath2VideoRecordingProcess & "]."
				WScript.Quit 4
			End If
		Else
			WScript.Echo "Can't execute process [" & strPath2GameProcess & "]."
			WScript.Quit 3
		End If
	Else
		WScript.Echo "Can't find file [" & strPath2VideoRecordingProcess & "]."
		WScript.Quit 1
	End If
Else
	WScript.Echo "Can't find file [" & strPath2GameProcess & "]."
	WScript.Quit 1
End If

Set objFSO             = Nothing

Set objSWbemObjectEx   = Nothing
Set objSWbemServicesEx = Nothing

WScript.Quit 0

Запускаете скрипт, ждёте запуска игры, ждёте пять секунд, нажимаете F12 (или иную горячую клавишу, какая там у Вас настроена) для начала записи видео. Закончили — нажали F12 для остановки записи видео, затем только закрыли игру.

Отправлено: 02:33, 18-12-2018 | #7


Аватара для vk_k14m@vk

Старожил


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

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


Цитата Iska:
Запускаете скрипт, ждёте запуска игры, ждёте пять секунд, нажимаете F12 (или иную горячую клавишу, какая там у Вас настроена) для начала записи видео. Закончили — нажали F12 для остановки записи видео, затем только закрыли игру. »
С F12 не понял, зачем мне ее нажимать?

-------
Взялся отвечать, отвечай до конца!


Отправлено: 02:51, 18-12-2018 | #8


Аватара для vk_k14m@vk

Старожил


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

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


Цитата Iska:
за мельтешением картинок на Вашем Рабочем столе ничего разглядеть невозможно, ни где Вы возите мышкой, ни где что нажимаете. И большой баннер над панелью задач этому тоже не помогает. »
А что там разглядывать? Два раза кликнул на ярлык "MTA Province". Дождался запуска игры. Свернул игру. Два раза нажал на ярлык "Bandicam" (запись началась). Развернул игру. Вышел из игры. Открыл скрытые значки трея. Кликнул на "Bandicam", остановил запись и закрыл приложение. Хотя последние действия были не обязательны. Bandicam записывает видео сразу в *.mp4
Никакие дополнительные действия вроде перекодирования, остановки и сохранения записи не нужны. Если принудительно закрыть программу видео так же не повредится.

Цитата Iska:
Можете пробовать. На WSH: »
А как "собрать" этот скрипт, что б не было такой ошибки




И еще вопрос на будущее. Если я захочу сделать подобный скрипт, но для какой-то другой игры. Мне просто изменить путь в этой строчке
Код: Выделить весь код
Const strPath2GameProcess = "D:\Games\MTA Province\MTA\Multi Theft Auto.exe"
на путь к другой запускаемой игре? Или еще что-то переписывать нужно?

-------
Взялся отвечать, отвечай до конца!


Последний раз редактировалось vk_k14m@vk, 18-12-2018 в 03:21.


Отправлено: 03:08, 18-12-2018 | #9


Ветеран


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

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


Цитата vk_k14m@vk:
С F12 не понял, зачем мне ее нажимать? »
Для начала и остановки процесса захвата видео.

Цитата vk_k14m@vk:
(запись началась). »
Покажите Ваши настройки приложения, которые отвечают за автоматический старт записи.

Цитата vk_k14m@vk:
Хотя последние действия были не обязательны. »
Обязательны. Иначе будет у Вас оборванное видео. Особенно, когда речь идёт об mpeg.

Цитата vk_k14m@vk:
Если принудительно закрыть программу видео так же не повредится. »
Есть большие сомнения на этот счёт.

Цитата vk_k14m@vk:
А как "собрать" этот скрипт, что б не было такой ошибки »
Сохранять в файл с расширением .vbs, а не .wsh (.wsh — файл параметров для сценария скрипта).

Цитата vk_k14m@vk:
И еще вопрос на будущее. Если я захочу сделать подобный скрипт, но для какой-то другой игры. Мне просто изменить путь в этой строчке »
Теоретически — да. Практически же — этого гарантировать нельзя.

Отправлено: 05:05, 18-12-2018 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Скрипт для авто выключения одного приложения при ручном выключении другого (.exe) vk_k14m@vk Скриптовые языки администрирования Windows 26 05-06-2018 01:32
Общее - BAT/CMD скрипт-меню для dism.exe sosed213 Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista 6 02-02-2018 14:16
VBS/WSH/JS - Скрипт VBS для запуска .bat-файла при выключении компьютера(сценарий) W1nn1ep00h Скриптовые языки администрирования Windows 2 16-05-2013 16:31
2007 - [решено] Настройка почты через bat (cmd или скрипт) zai Microsoft Office (Word, Excel, Outlook и т.д.) 1 25-11-2011 17:32
CMD/BAT - [решено] bat скрипт - инсталятор модулей для одного java приложения bombording Скриптовые языки администрирования Windows 2 08-06-2009 15:33




 
Переход