|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - CMD/BAT - [решено] Скрипт для авто выключения одного приложения при ручном выключении |
|
|
CMD/BAT - CMD/BAT - [решено] Скрипт для авто выключения одного приложения при ручном выключении
|
Старожил Сообщения: 342 |
Профиль | Отправить PM | Цитировать
Однажды я уже задавал подобный вопрос, но нужного ответа тогда я так и не получил. Так что это моя вторая попытка.
Есть некая игра, назовем её MTA Province. И приложение для записи видео с экрана - Bandicam. Нужно создать скрипт, при запуске которого сначала должна запускаться игра, а потом через секунд 5 - приложение для записи видео. Приложение нужно просто запустить, авто запись в нём включается сама. Но это ещё не весь скрипт. Нужно что б скрипт всё ещё оставался активен и всё время отслеживал (желательно в свёрнутом виде), запущена ли игра или нет. И в случает выключения игры, скрипт должен так же выключить и программу для записи видео. Ну и сам скрипт после этого со спокойной душей тоже должен закрыться. Думаю цель ясна. Запускаю игру - начинается запись видео. Выключаю игру - запись прекращается. НО. Приложение для запуска игры, запускает иной процесс, и к тому же не один (Смотреть вложение). Да и Bandicam, запускается одним приложением, но запускает другой процесс (Смотреть второе вложение). И вот я не соображаю как написать этот скрипт. Надеюсь на понимает, и помощь от знающих людей. Информации НА ЭТОТ РАЗ я надеюсь дал достаточно... |
|
------- Отправлено: 23:29, 17-12-2018 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Покажите то же самое, только скриншотами Process Explorer'а. Уточните, какие именно исполняемые файлы Вы запускаете для игры и для записи видео. Запишите видео, на котором покажите, как Вы делаете описанные выше действия вручную.
|
Отправлено: 23:56, 17-12-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 342
|
Профиль | Отправить PM | Цитировать Записать видео процесса запуска записи видео. Хм... Думаю тут нужна вторая прога для записи видео. Сейчас что-то соображу...
|
------- Отправлено: 00:00, 18-12-2018 | #3 |
Старожил Сообщения: 342
|
Профиль | Отправить PM | Цитировать А скриншот вот
|
------- Последний раз редактировалось vk_k14m@vk, 18-03-2019 в 17:56. Отправлено: 00:06, 18-12-2018 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Покажите свойства того, чем Вы запускаете процессы «Multi Theft Auto.exe» и «bdcam.exe» (например, свойства ярлыков). Конкретно интересуют полный путь к исполняемому файлу, рабочий каталог, требуется ли запуск с административными привилегиями, передаваемые параметры и т.п.
|
|
Отправлено: 00:19, 18-12-2018 | #5 |
Старожил Сообщения: 342
|
Профиль | Отправить PM | Цитировать Исполняемые файлы:
"D:\Games\MTA Province\MTA\Multi Theft Auto.exe" "C:\Program Files (x86)\Bandicam\Loader.exe" В свойствах ярлыков галочка "Запуск от имени администратора" нигде не стоит. Видео |
------- Отправлено: 00:31, 18-12-2018 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить 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 |
Старожил Сообщения: 342
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
------- Отправлено: 02:51, 18-12-2018 | #8 |
Старожил Сообщения: 342
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Никакие дополнительные действия вроде перекодирования, остановки и сохранения записи не нужны. Если принудительно закрыть программу видео так же не повредится. Цитата Iska:
И еще вопрос на будущее. Если я захочу сделать подобный скрипт, но для какой-то другой игры. Мне просто изменить путь в этой строчке на путь к другой запускаемой игре? Или еще что-то переписывать нужно? |
||
------- Последний раз редактировалось vk_k14m@vk, 18-12-2018 в 03:21. Отправлено: 03:08, 18-12-2018 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата vk_k14m@vk:
Цитата vk_k14m@vk:
Цитата vk_k14m@vk:
Цитата vk_k14m@vk:
Цитата vk_k14m@vk:
Цитата vk_k14m@vk:
|
||||||
Отправлено: 05:05, 18-12-2018 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|