C# 息屏操作出现闪屏

【声明】CSDN只做转发不做时时更新,最新博客请关注博客园 C# 息屏操作出现闪屏 - 唐宋元明清2188 - 博客园

windows大屏使用场景,关闭显示器是一个常用操作。

操作系统提供了相应的API,应用层调用:

 1     //广播消息,所有顶级窗体都会接收
 2     private static readonly IntPtr HWND_BROADCAST = new IntPtr(0xffff);
 3     //系统消息
 4     private const uint WM_SYSCOMMAND = 0x112;
 5     //关闭显示器的系统命令
 6     private const int SC_MONITORPOWER = 0xF170;
 7     //2为PowerOff, 1为省电状态,-1为开机
 8     private const int MonitorPowerOff = 2; 
 9     // 定义Win32 API中的SendMessage函数
10     [DllImport("user32.dll",CharSet = CharSet.Auto)]
11     private static extern IntPtr SendMessage(IntPtr hWnd, uint hMsg, int wParam, int lParam);
12     private void SendMessage_OnClick(object sender, RoutedEventArgs e)
13     {
14         SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, MonitorPowerOff);
15     }

以上是息屏的实现。但经测试验证,上面方案有较大概率导致整机时序信号反复

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值