是否可以通过编程方式关闭显示器的电源?
在我看到的所有内容中,包括打开/关闭显示器,人们所说的"关闭"实际上是待机模式.
我正在寻找完全断电,因为它与按下电源按钮的功能相同.下面的代码可以使显示器进入待机模式,但这并不是我想要的.
using System;
using System.Runtime.InteropServices;
namespace ScreenSleep
{
class Program
{
private const int HWND_BROADCAST = 0xFFFF;
private static int WM_SYSCOMMAND = 0x0112;
private static int SC_MONITORPOWER = 0xF170;
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern int SendNotifyMessage(IntPtr hWnd, int wMsg, IntPtr wParam, IntPtr lParam);
public static void Main(string[] args)
{
SendNotifyMessage((IntPtr)HWND_BROADCAST, WM_SYSCOMMAND, (IntPtr)SC_MONITORPOWER, (IntPtr)2);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我确信我会得到回复,告诉我只要按下电源按钮,如果这就是我想要的,或者待机模式使用的功率几乎没有,请让我解释为什么那些不理想:
我在一家广播公司工作,所以墙上装满了各种任务的监视器,电源按钮很难到达.虽然所有显示器都是在早上使用的第一件事,但使用过的显示器的数量在一天中会逐渐减少.当人员离开办公室时,如果他们是当天使用指定监视器的最后一个人,他们需要将其关闭.然而,由于难以触及按钮和视频墙的布局,我们不希望人们不断回到那里关闭显示器电源并冒险意外拔出任何插头.早上主管每天早上都会在电源按钮上按下电源按钮,为所有电源按钮供电,因此不需要基于软件的解决方案.还有一项公司要求不要让监视器在一夜之间处于待机模式,因此这不是一种选择.
在我的数据库中,我有几千个客户,某些标准以不同的间隔发生.一周中的每一天都有列(M,Tu,W,Th,F,Sa,Su).我需要查看每周会有多少天触发任务.我有下面的查询,但它当然也会返回一周中的特定日期以及每周的TotalDays.但是,我需要查看TotalDays,而不是每个日期都显示.我怎么能做到这一点?
SELECT X.*,M+Tu+W+Th+F+Sa+Su AS TotalDays
FROM
(
SELECT
CASE WHEN [M] = '1' THEN 1 ELSE 0 END as "M",
CASE WHEN [Tu] = '1' THEN 1 ELSE 0 END as "Tu",
CASE WHEN [W] = '1' THEN 1 ELSE 0 END as "W",
CASE WHEN [Th] = '1' THEN 1 ELSE 0 END as "Th",
CASE WHEN [F] = '1' THEN 1 ELSE 0 END as "F",
CASE WHEN [Sa] = '1' THEN 1 ELSE 0 END as "Sa", …
Run Code Online (Sandbox Code Playgroud)