WIN8 C#调用API 打开显示器 无效

我有一块win8.1的平板

   private static readonly IntPtr HWND_BROADCAST = new IntPtr(0xffff);
        private const uint WM_SYSCOMMAND = 0x0112;
        private const int SC_MONITORPOWER = 0xf170;
        //打开显示器
        public static void TurnOn()
        {
            SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, -1);
        }
        //关闭显示器
        public static void TurnOff()
        {
            SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2);
        }

在XP上测试没问题 可是在win8.1上面 关闭能正常关闭显示器 可是发送点亮屏幕的指令后 第一次能点亮大概1-2秒 然后屏幕就自己黑了 之后再也点不亮 只能手动去唤醒屏幕 有人知道是什么问题么 我是WIN8.1平板

是否用administrator运行你的程序试试。

看看你的显示器设置有没有问题,在显示器设置属性中,多显示器是扩展、复制还是禁用状态。