Python如何查看外接显示器是开还是关?
How to check whether an external display is ON or OFF in Python?
我有一个 Mac Mini,它通过 HDMI 连接到一个外部显示器。它是第三方显示器(戴尔制造); Apple 键盘上的 "change brightness" 功能键对显示没有影响。
只需手动按下显示器表面的电源按钮即可切换显示器 ON/OFF 状态。
我正在寻找 Python 代码来检查此显示器是打开还是关闭。我对基于命令行的解决方案持开放态度。
请注意,无论显示器是打开还是关闭,显示器都会保持与计算机的连接。因此,Display Manager library 在这里帮不了我。
上下文是我想要一个 Python 脚本只在显示器关闭时播放一些音频。
根据this SO post,您可以使用以下命令在 MacOS 上检查连接的显示器的规格:
$ system_profiler SPDisplaysDataType
这将return信息如:
Graphics/Displays:
NVIDIA GeForce GT 640M:
Chipset Model: NVIDIA GeForce GT 640M
Type: GPU
Bus: PCIe
PCIe Lane Width: x16
VRAM (Total): 512 MB
Vendor: NVIDIA (0x10de)
Device ID: 0x0fd8
Revision ID: 0x00a2
ROM Revision: 3707
Displays:
iMac:
Display Type: LCD
Resolution: 1920 x 1080
Pixel Depth: 32-Bit Color (ARGB8888)
Main Display: Yes
Mirror: Off
Online: Yes
Built-In: Yes
Connection Type: DisplayPort
我的假设是,当没有连接显示器时,将没有 Display Type
、Resolution
或其他字符串。
Here 是关于 运行 的更多信息 Python 中带有命令行参数的命令行程序,并接收输出,即:
>>> import subprocess
>>> result = subprocess.run(['system_profiler', 'SPDisplaysDataType'], stdout=subprocess.PIPE)
>>> result.stdout
和 result.stdout 将包含字符串 returned(如前所示)。然后你可以在 returned 字符串中搜索你想要的参数:
if "Display Type" not in result.stdout:
screenConnected = false
playMusic()
显然值得检查其他参数并添加一些错误处理,但也许这是一个开始的地方。
我不确定是否有回调方法/我自己没有找到任何 Python 库,但请在我的回答中发表评论,我会更新。
让我知道这是否可行!
我有一个 Mac Mini,它通过 HDMI 连接到一个外部显示器。它是第三方显示器(戴尔制造); Apple 键盘上的 "change brightness" 功能键对显示没有影响。
只需手动按下显示器表面的电源按钮即可切换显示器 ON/OFF 状态。
我正在寻找 Python 代码来检查此显示器是打开还是关闭。我对基于命令行的解决方案持开放态度。
请注意,无论显示器是打开还是关闭,显示器都会保持与计算机的连接。因此,Display Manager library 在这里帮不了我。
上下文是我想要一个 Python 脚本只在显示器关闭时播放一些音频。
根据this SO post,您可以使用以下命令在 MacOS 上检查连接的显示器的规格:
$ system_profiler SPDisplaysDataType
这将return信息如:
Graphics/Displays:
NVIDIA GeForce GT 640M:
Chipset Model: NVIDIA GeForce GT 640M
Type: GPU
Bus: PCIe
PCIe Lane Width: x16
VRAM (Total): 512 MB
Vendor: NVIDIA (0x10de)
Device ID: 0x0fd8
Revision ID: 0x00a2
ROM Revision: 3707
Displays:
iMac:
Display Type: LCD
Resolution: 1920 x 1080
Pixel Depth: 32-Bit Color (ARGB8888)
Main Display: Yes
Mirror: Off
Online: Yes
Built-In: Yes
Connection Type: DisplayPort
我的假设是,当没有连接显示器时,将没有 Display Type
、Resolution
或其他字符串。
Here 是关于 运行 的更多信息 Python 中带有命令行参数的命令行程序,并接收输出,即:
>>> import subprocess
>>> result = subprocess.run(['system_profiler', 'SPDisplaysDataType'], stdout=subprocess.PIPE)
>>> result.stdout
和 result.stdout 将包含字符串 returned(如前所示)。然后你可以在 returned 字符串中搜索你想要的参数:
if "Display Type" not in result.stdout:
screenConnected = false
playMusic()
显然值得检查其他参数并添加一些错误处理,但也许这是一个开始的地方。
我不确定是否有回调方法/我自己没有找到任何 Python 库,但请在我的回答中发表评论,我会更新。
让我知道这是否可行!