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

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

我想运行两个程序 一个直接打开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 r语言神经网络自变量重要性分析
  • ¥15 基于双目测规则物体尺寸
  • ¥15 wegame打不开英雄联盟
  • ¥15 公司的电脑,win10系统自带远程协助,访问家里个人电脑,提示出现内部错误,各种常规的设置都已经尝试,感觉公司对此功能进行了限制(我们是集团公司)
  • ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?
  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢