Закрытие уже открытой программы в зависимости от открытия другой программы?

335
BNM51306

Я очень новичок в использовании пакетных файлов и столкнулся с проблемой, которую Google не смог решить. Я надеюсь, что кто-то может помочь мне с этим, потому что это довольно глупо. Мое намерение состоит в том, чтобы одновременно открыть интерфейсную программу для эмуляции и плейлист Windows Media Player, чтобы можно было воспроизводить музыку меню, а затем закрыть WMP при запуске игры и снова открыть при закрытии игра, возвращаясь к Front-End. Список проблем, с которыми я столкнулся:

  1. Front-End открывается в полноэкранном режиме и имеет приоритет. Я могу одновременно открыть WMP, но после запуска Front-End он, похоже, препятствует запуску / закрытию любых других файлов / программ.
  2. Front-End перечисляет игры для меня. Когда я выбираю один, он минимизирует Front-End в фоновом режиме и запускает эмулятор, который затем запускает игру. Когда я выхожу из игры, она запускает Front-End. Сам эмулятор также запрещает запуск большинства файлов / программ. Когда я получил настройку горячих клавиш для запуска .bat-файла, который открывает WMP после выхода из игры, он успешно запустил WMP, но также приостановил эмулятор и не позволил ему правильно выйти.
  3. Чтобы запустить WMP в качестве плейлиста, который уже воспроизводит музыку в случайном порядке, я начинаю как «AP1.wpl», который является файлом плейлиста, но единственный способ выйти из него - это TaskKill «wmplayer.exe», так что они не помечен как та же программа.
  4. .Exe Front-End не запускается через файл .bat. Таким образом, мой обходной путь состоял в том, чтобы создать .vbs, который будет запускать его как горячую клавишу, и включить .vbs в мой .bat, так что это ограничит меня в маркировке WMP с помощью Front-End, но так как он вообще не закрывается, и блокирует все команды, пока они открыты, я не думаю, что это имеет большое значение.

Я думаю, что это действительно все вопросы, которые стоит упомянуть, чтобы объяснить ситуацию.

Единственная идея, которая у меня есть, заключается в том, что когда я выбираю игру во Front-End, она минимизирует и на короткое время открывает командную строку на 2-3 секунды, а затем запускает эмулятор / игру. Это краткое открытие позволяет мне запускать и закрывать программы до того, как эмулятор отключит меня. Если бы я мог просто привязать закрытие и открытие WMP к командной строке, чтобы при запуске Front-End запускался WMP, а при запуске игры он закрывал WMP, как только открывается CMD. При выходе из игры (также как и в cmd) запускается плейлист .wpl. Это должен быть цикл такого рода, в зависимости от того, когда CMD открывается / закрывается. Пока это то, что я собираюсь (это не так много):

@echo off start hotkey1.vbs C:\AP\AP1.wpl 

.Vbs запускает Front-End, а AP1.wpl - список воспроизведения. И каким-то образом wmplayer.exe должен быть taskkill'd через появление и исчезновение cmd.exe, по собственному желанию.

0
Логика, которую я использую, невелика, в основном это теория того, что я хочу сделать. Совокупность моего командного файла - это то, что я перечислил выше. Это .vbs: Set WshShell = WScript.CreateObject ("WScript.Shell") WshShell.SendKeys "^% 5" Это все в значительной степени с чистого листа, если у вас есть идеи. BNM51306 7 лет назад 0
Я ценю вашу помощь до сих пор! Это был трудный опыт, просто пытаться продумать все это. Я очень незнаком со всем этим, и знаю только некоторые из самых простых синтаксисов. .Vbs было просто что-то, что я гуглил. Я не думаю, что хочу идти по пути редактирования любых программных сценариев. Я был бы в восторге, если бы мои намерения могли быть ограничены только .bat BNM51306 7 лет назад 0
Я не имею ни малейшего представления о VBS, и я не уверен, что у меня есть вся ваша проблема, но может быть, это идея сделать запрос tasklistчерез пакетный файл, чтобы проверить, запущены ли эмулятор и медиаплеер? Florian Straub 7 лет назад 0

0 ответов на вопрос

Похожие вопросы