【问题标题】:How to check if steam is running in batch, then execute a display switch if steam is not running如何检查蒸汽是否在批量运行,如果蒸汽没有运行,则执行显示切换
【发布时间】:2014-01-09 21:54:49
【问题描述】:
@echo off
DisplaySwitch.exe /extend
start "" "C:\Program Files (x86)\Steam\Steam.exe" -bigpicture
tasklist /fi "imagename eq steam.exe" |find ":" > nul
if errorlevel 1 (
DisplaySwitch.exe /external
)

DisplaySwitch.exe 将我的显示器设置从仅第二个屏幕更改为扩展 第 3 行以大画面模式启动 Steam 我不熟悉第 4 行,基本上它应该列出 steam 并生成错误级别,0 表示程序正在运行,1 表示没有。 if 语句,如果程序未运行,则仅将监视器设置更改回第二个屏幕。

我有一个双显示器设置,然后在它旁边有一台电视,用于播放蒸汽大图。 (我没有为除了大画面以外的实例启用它)我最近得到了一个带有可编程键的新键盘,所以我想编写一个键来运行大画面、切换显示器和所有爵士乐。所以当我按下这个按钮时,我希望我的显示器设置更改为扩展,(所以我的电视有电脑信号)而不是启动蒸汽大画面,这是我能够实现的。当我想回到正常的显示器设置时,问题就出现了。我想测试一下 Steam 是否正在运行,如果没有(我退出 Steam 大图),我希望它回到我的默认显示器设置。我使用大量互联网资源制作了这段代码,但我似乎无法正确理解最后一部分。任何帮助将不胜感激!

【问题讨论】:

    标签: batch-file steam


    【解决方案1】:

    如果您说出它正在在做什么而不是让我们怀疑,也许会有所帮助。显然,尽管存在steam.exe,它似乎正在执行切换回。对吗?

    AFAICS,可能在执行 tasklist 时实际上并未加载 steam。您可能需要插入延迟。

    timeout /t 1 >nul
    

    应该注意这一点 - 1 秒。

    或者,也许你可以试试

    start /WAIT "" "C:\Program Files (x86)\Steam\Steam.exe" -bigpicture
    

    在继续下一步之前应该等待 steam 退出。可能根本不需要tasklist...


    编辑:增加清晰度的起始行

    【讨论】:

    • 我没有尝试你建议的最后一步,我不确定如何实现 /wait 之后的内容
    猜你喜欢
    • 1970-01-01
    • 2020-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-15
    • 1970-01-01
    • 2014-11-27
    • 1970-01-01
    相关资源
    最近更新 更多