weixin_45840746 2023-04-12 18:40 采纳率: 35.6%
浏览 90
已结题

批处理在不同屏幕上打开程序

我想运行两个程序 一个直接打开chrome在主屏全屏显示 一个直接打开edge在扩展屏上全屏显示,好像是因为我只有一个独显,设备id相同,所以无法使用--display ,但是为什么我的--window-position=0,0 --window-size=2560,1600 也没有生效 我主屏25601600 扩展屏是38402160,平行左右排列,请教一下为啥没有生效,总是在一个屏幕出现两个网页

@echo off
setlocal enableDelayedExpansion

rem 切换到 Python 脚本目录,启动 Python 应用程序
cd ".\Large screen\audio-painter\flask"
start cmd /k "python app.py"

rem 等待 1 秒钟,以确保 Python 应用程序已经启动
choice /t 1 /d y /n >nul

rem 切换到大屏脚本目录,启动大屏应用程序
cd "..\..\textDrawing-web\coart-web\src"
start cmd /k "npm run dev"

rem 等待 10 秒钟,以确保大屏应用程序已经启动
choice /t 10 /d y /n >nul

set "url=http://localhost:8080"
set "width=3840"
set "height=2160"
set "xpos=2560"
set "ypos=-1600"

@REM LEN61B0 CSO1600
rem 枚举所有的显示器并找到扩展屏的设备ID
for /f "tokens=2 delims==." %%i in ('wmic path Win32_PnPEntity where "PNPClass='Monitor'" get DeviceID /value ^| findstr /r [0-9]') do (
    set "monitorid=%%i"
    @REM echo %%i
    @REM pause
    echo !monitorid! | find /i "CSO1600" >nul
    if not errorlevel 1 (
        set "display=\\.\!monitorid!"
        echo 找到扩展屏:%display%
        goto display_found
    )
)


rem 如果找到扩展屏则在扩展屏上全屏打开 Chrome
goto end

:display_found
@REM start "" "chrome" --new-window  --kiosk -- --window-position=%xpos%,%ypos% --window-size=%width%,%height% --display=\\.\CSO1600 "%url%"
start msedge  --new-window  --kiosk "%url%"  --window-position=0,0 --window-size=2560,1600 


%切换小屏路径%
cd ..\..\..\..\small screen\textDrawing\src
start  cmd /k "npm run dev"

rem 等待 10 秒钟
choice /t 10 /d y /n >nul

start msedge --new-window --kiosk "http://localhost:8081"  --edge-kiosk-type=fullscreen --window-position=2560,0 --window-size=3840,2160 
:end

  • 写回答

5条回答 默认 最新

  • 「已注销」 2023-04-12 19:15
    关注

    引用new bing部分回答作答:
    您在命令行中使用的参数 --window-position 和 --window-size 可能不起作用的原因是,Chrome 和 Edge 可能会忽略这些参数,因为它们被视为启动标志而不是应用程序窗口的大小和位置。

    另一个问题是,您可能需要使用不同的 --display 参数来在不同的屏幕上启动应用程序。如果您的两个屏幕具有相同的设备 ID,则可以尝试使用屏幕的位置坐标来替代 --display 参数。

    例如,对于您的情况,可以尝试以下命令来在不同的屏幕上启动 Chrome 和 Edge:

    :: Start Chrome on the primary screen
    start chrome --new-window --kiosk --app=%url% --window-position=0,0 --window-size=2560,1600
    
    :: Start Edge on the secondary screen
    start msedge --new-window --kiosk --app=%url% --window-position=2560,0 --window-size=1280,720
    

    这仅适用于具有不同设备 ID 的屏幕,因为这样才能在命令行中使用 --display 参数。如果您的两个屏幕具有相同的设备 ID,则需要使用位置坐标来替代 --display 参数。例如:

    :: Start Chrome on the primary screen
    start chrome --new-window --kiosk --app=%url% --window-position=0,0 --window-size=2560,1600
    
    :: Start Edge on the secondary screen
    start msedge --new-window --kiosk --app=%url% --window-position=-1280,0 --window-size=1280,720
    

    这将在两个屏幕上启动两个应用程序,一个在左侧的主屏幕上,一个在右侧的扩展屏幕上。请注意,位置坐标的符号必须与屏幕的位置相对应。在这种情况下,我们将 xpos 设为 -1280,因为扩展屏幕位于主屏幕的右侧,所以应使用负值。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 4月26日
  • 已采纳回答 4月18日
  • 创建了问题 4月12日

悬赏问题

  • ¥15 在误装Windows server2019 后如何利用Windows.old恢复?
  • ¥20 代码实现状态连接包过滤防火墙的设计与实现
  • ¥15 vscode的红色箭头爆红和has no default export报错
  • ¥15 关于#sql#的问题:#情况描述 在用vs对项目进行调试时,出现找不到网络路径,然后查看SQL配置工具,发现SQL服务显示远程调用过程失败(相关搜索:防火墙)
  • ¥15 eNSP中基于默认路由及浮动路由的公司与分部互联和校园网综合项目
  • ¥15 主要进行描述泥浆在管路不同区段泥浆的密度不相同,泥浆的密度有高有低,此时管路的摩阻分布需要怎么计算,(标签-matlab)
  • ¥40 通过编制程序计算圆管内层流充分发展对流换热,参数如图5-4,以及公式5-16所示,要求用表5-6对程序计算准确性进行验证
  • ¥20 该学习哪个编程语言? AI会取代程序员吗?
  • ¥15 ensp如何拼通IP地址
  • ¥15 saber软件导入Ibis模型报错