我对使用批处理文件还很陌生,遇到了一个谷歌搜索无法解决的问题。我希望有人能帮助我解决这个问题,因为这确实很棘手。我的目的是同时打开一个用于模拟的前端程序和一个 Windows Media Player 播放列表,以便播放菜单音乐,然后在我开始游戏时关闭 WMP,在关闭游戏时再次打开,返回到前端。我遇到的一系列问题是:
- 前端全屏打开,并具有优先权。我可以同时打开 WMP,但一旦前端运行,它似乎就会阻止任何其他文件/程序启动/关闭。
- 前端会为我列出游戏。当我选择一个游戏时,它会将前端最小化到后台,并启动模拟器,然后运行游戏。当我退出游戏时,它会重新启动前端。模拟器本身也会阻止大多数文件/程序启动。当我设置热键以启动退出游戏后打开 WMP 的 .bat 文件时,它会成功启动 WMP,但也会暂停模拟器,并阻止它正常退出。
- 要将 WMP 作为已经在随机播放音乐的播放列表启动,我以“AP1.wpl”开始,它是播放列表的文件,但退出的唯一方法是执行 taskkill“wmplayer.exe”,因此它们不会被标记为同一个程序。
- 前端的 .exe 无法通过 .bat 文件启动。因此,我的解决方法是创建一个 .vbs,将其作为热键快捷启动,并将 .vbs 包含在我的 .bat 中,这样就限制了我用前端标记 WMP,但由于它实际上从未关闭过,并且在打开时阻止所有命令,所以我认为这并不重要。
我想,这些确实就是值得一提的所有问题,可以解释这种情况。
我有一个想法,当我在前端选择一个游戏时,它会最小化并打开命令提示符,持续 2-3 秒,然后启动模拟器/游戏。这个短暂的打开确实允许我在模拟器关闭之前启动和关闭程序。如果我可以将 WMP 的关闭和打开与命令提示符联系起来,这样当我启动前端时,WMP 就会启动,当我启动游戏时,它会在 CMD 打开后立即关闭 WMP。当游戏退出时(以及 cmd),它会启动 .wpl 播放列表。它必须是这种循环,取决于 CMD 的打开/关闭时间。到目前为止,这就是我所做的(不多):
@echo off
start hotkey1.vbs
C:\AP\AP1.wpl
.vbs 启动前端,AP1.wpl 是播放列表。而 wmplayer.exe 必须通过 cmd.exe 的出现和消失以某种方式自行终止任务。