一键切换显示器输入源


因工作原因,公司给配了一台新的台式机 🖥️,同时,又不想放弃使用自己的笔记本,在只有一台外接显示屏的情况下,达到外接显示随时切换的目的。

最开始,仅通过手动按显示器按钮方式操控,体验下来,太繁琐!!😓
无奈,便寻找更快捷的方式,于是,便有了本文。

记录一键修改视屏输入源的方式,做到 Windows <-> Mac 的无缝切换。

一、Windows端

Windows端切换到Mac,借助ControlMyMonitor软件和Python脚本实现

1.1 ControlMyMonitor

ControlMyMonitor工具是开源免费的,只能在Windows上运行。
该工具主要用于更改显示器配置,它能够快速更改亮度、色温、对比度等设置,支持页面或命令行操作,无需通过显示器按钮。

操作步骤

  1. 点击下载ControlMyMonitor到本地指定目录
    在这里插入图片描述
  2. 打开软件,可以看到如下页面
    在这里插入图片描述

其中,Input Select代表输入选择,Possible Values代表可选项
经过测试发现,17代表DP源(Windows),15代表VGA源(Mac)
此参数依据显示器支持的输入源和已接入的源变动,每台电脑都不一样,所以需要测试确认源的对应值

  1. 确认源的对应值后,通过命令行方式,尝试切换输入源:./controlmymonitor.exe /SetValue Primary 60 15*

    命令解析:

    • controlmymonitor.exe:及官网下载的软件
    • SetValue:该软件的内置命令,用于设定值
    • Primary:主显示器
    • 60:输入源设定
    • 15:VGA输入口(我这里对应Mac)

    成功切换后,及代表试验成功。否则,换Possible Values值中另一个试试?

  2. 既然命令行方式已试验成功,我们试着简化它,不用每次敲命令行。我们可以通过Python脚本实现切换源功能,源码如下:

# cut_source.py
__doc__ = """
    用于一键切换视频输入源
"""

import os
import sys
from ctypes import windll


def cut(source):
    """
    切换显示器输入源
    """
    # 需要修改为本机软件所在路径
    exe_path = "cd /d D:\Program Files\controlmymonitor"
    cmd = f"{exe_path} && controlmymonitor.exe /SetValue Primary 60 {source}*"
    os.system(cmd)


def lock_screen():
    """
    锁屏
    """
    user = windll.LoadLibrary("user32.dll")
    user.LockWorkStation()


if __name__ == "__main__":
    # 1:  MAC > VGA
    # 15: WIN > DP
    try:
        argv = sys.argv[1]
    except Exception as e:
        argv = "15"  # 默认为15,可手动改
    cut(argv)
    lock_screen()

说明:

依赖:Python3

运行方式:python cut_source.py [value]

可选参数value:切换目的源(我这里默认为15)

功能描述:

运行该脚本后,切换指定视频输入源并锁屏
  1. 运行测试后,发现功能有了,但还是不方便(需要运行python脚本,依赖环境)。

因此,我们把脚本编译为Windows可直接运行的.exe文件。使用pyinstaller库,终端运行:pip install pyinstaller
安装成功后,cd到脚本所在位置,运行 pyinstaller -F cut_source.py -w,将其编译为.exe文件,目录层级如下:

注意事项 ⚠️:

默认生成的exe会放在dist目录下,我们只需要cut_source.exe文件

在这里插入图片描述
生成exe文件后,直接双击就可切换显示器输入源啦。为了更快捷,可将其 发送快捷方式到桌面 或 固定到任务拦。至此,达到了Windows > Mac的目的。

二、Mac端

使用MAC触发角功能,配置鼠标移到指定位置后将显示器置为睡眠状态,配合外接显示器自动切换输入源功能,达到Mac > Windows切换的目的。


三、附录

3.1 pyinstaller参数说明

  • -F:打包后只生成单个exe格式文件
  • -D:默认选项,创建一个目录,包含exe文件以及大量依赖文件
  • -c:默认选项,使用控制台(就是类似cmd的黑框)
  • -w:不使用控制台
  • -p:添加搜索路径,让其找到对应的库
  • -i:改变生成程序的icon图标
  • 28
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Windows系统中,要使用命令行一键切换多个JDK版本,可以按照以下步骤操作: 1. 首先,在当前用户的环境变量中设置JDK的安装路径。在命令行中输入`setx JAVA_HOME "JDK的安装路径"`。例如,如果要切换到JDK 8,将路径替换为JDK 8的安装路径。 2. 接下来,更新系统的Path变量。在命令行中输入`setx Path "%JAVA_HOME%\bin;%Path%"`。这将把JDK的bin文件夹路径添加到系统的Path变量中,使得系统能找到正确的JDK版本。 3. 为了实现一键切换,可以编写一个批处理脚本或者PowerShell脚本。在脚本中,可以使用`setx`命令来切换JDK的安装路径和更新系统的Path变量。 4. 在脚本中,可以定义不同的变量来表示不同的JDK版本,然后在切换时将对应的变量传递给`setx`命令。 5. 最后,在命令行中运行脚本即可一键切换多个JDK版本。可以创建不同的脚本来切换到不同的JDK版本,这样就可以根据需要灵活选择。 通过以上步骤,我们可以使用命令行一键切换多个JDK版本。这样可以方便地在不同的项目中使用不同的JDK版本,并且避免了手动修改环境变量的繁琐步骤。 ### 回答2: 在Windows系统上,可以通过以下步骤使用命令行一键切换多个JDK版本: 1. 首先,确保你已经安装了多个不同版本的JDK,并记录它们的安装路径。 2. 打开命令提示符(CMD)或者PowerShell。 3. 输入以下命令来设置环境变量,将你想要切换的JDK版本路径添加到PATH环境变量中: ``` setx /M JAVA_HOME "C:\Path\to\your\jdk\version" setx /M PATH "%JAVA_HOME%\bin;%PATH%" ``` 注意,将上面的`C:\Path\to\your\jdk\version`替换为你想要切换的JDK版本的安装路径。 4. 使用以下命令来验证JDK版本是否已成功更改: ``` java -version ``` 5. 如果你想要切换到另一个JDK版本,重复步骤3和4。 请注意,这种方法只在当前的命令提示符或者PowerShell会话中生效。如果你想要在重新启动后保留更改,你需要将以上步骤执行的命令添加到你的系统环境变量中。 总之,通过设置环境变量和添加到PATH中,使用CMD或者PowerShell可以轻松地在Windows系统中一键切换多个JDK版本。 ### 回答3: 在Windows系统上,我们可以使用命令行来一键切换多个JDK版本。下面是一个简单的步骤: 1. 首先,在计算机上安装多个不同版本的JDK,并设置好对应的环境变量。 2. 打开命令提示符,可以通过按下Win键+R,然后输入“cmd”来打开。 3. 在命令行中,使用“where java”命令来查找当前系统中已安装的所有JDK的路径。该命令会列出所有JDK的安装位置。 4. 根据需要,将不同版本的JDK路径添加到环境变量中。使用“setx JAVA_HOME <JDK路径>”命令来设置对应JDK的JAVA_HOME环境变量。 5. 然后,使用“setx PATH %JAVA_HOME%\bin;%PATH%”来设置PATH环境变量。这将确保命令行可以找到所选的JDK版本。 6. 现在,可以使用“java -version”命令来验证所选的JDK版本。在命令行中输入该命令后,将显示当前运行的JDK的版本信息。 7. 如果需要切换到另一个JDK版本,只需重复第4步和第5步,重新设置JAVA_HOME和PATH环境变量。 通过以上步骤,我们可以使用命令行在Windows系统中一键切换多个JDK版本。这样可以方便地在不同项目或开发环境之间切换,确保与应用程序的版本要求相匹配。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值