是否可以在 Windows 10 中使用脚本打开和关闭 iGPU 显示?

问题描述 投票:0回答:1

在我的工作中,我们有悬挂式显示器,每个显示器都有自己的电脑,管理层突然希望在周末没有活动时进入睡眠模式。关闭电脑电源将使显示器进入睡眠模式,没有信号,但我们有超过 150 台这样的显示器,在周日晚上手动打开每台电脑的电源是一件令人头疼的事情,而且会浪费时间。我们可以让电脑保持开启状态,但显示器需要以某种方式置于睡眠模式。有些可以用遥控器从地面获得,但很多都挂得太高了,远程红外线无法到达。我们无法使用调度程序,因为偶尔会要求周末加班并且显示器需要保持打开状态。

是否有任何类型的方法可以为 iGPU 编写脚本来打开和关闭 PC 中的视频?这些是配备英特尔处理器的惠普迷你电脑。如果我们能弄清楚脚本的目标是什么,我们就可以远程触发它们。

不幸的是,第三方软件不是一个选择。我们必须使用 Windows 10 原生的功能。

powershell batch-file gpu
1个回答
0
投票

您可以使用 P/Invoke 将屏幕置于睡眠/唤醒状态。 看这个例子:

$codeSig = @'
using System;
using System.Runtime.InteropServices;

public class MonitorPower
{
    [DllImport("user32.dll")]
    public extern static IntPtr SendMessageW(IntPtr hWnd, UInt32 msg, IntPtr wParam, IntPtr Lparam);
}

'@

Add-type -TypeDefinition $codeSig

$WM_SYSCOMMAND = 0x0112 # syscommand
$SC_MONITORPOWER = 0xF170 # monitor
$POWER_OFF = 2
$POWER_ON = -1

# power Off screen
[MonitorPower]::SendMessageW(0xffff,$WM_SYSCOMMAND,$SC_MONITORPOWER,$POWER_OFF)


# power On screen:
[MonitorPower]::SendMessageW(0xffff,$WM_SYSCOMMAND,$SC_MONITORPOWER,$POWER_ON)

发送“2”将关闭显示器电源,发送-1将打开显示器电源(需要一些尝试和错误,在我的某些机器上-1不会打开屏幕电源)。

© www.soinside.com 2019 - 2024. All rights reserved.