VC开启系统屏保不成功,win7系统下

win7系统,右键桌面个性化,里面不开启屏幕保护程序。
代码里发送PostMessage(GetSafeHwnd(),WM_SYSCOMMAND,SC_SCREENSAVE,NULL)未能成功开启系统屏保。请问如何在桌面未开启屏保的情况下,在程序里启动并设置时间。

如果在桌面上开启屏保功能,执行上面的代码是可以立刻屏保的。

看下是不是uac权限不足造成的。你可以shellexecute xxx.src 直接启动屏保程序看看

测试了一下,以下代码是好用的

[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);

 const int WM_SYSCOMMAND = 0x112;    //系统消息
            const int SC_SCREENSAVE = 0xf140;   // 启动屏幕保护消息
            const int SC_MONITORPOWER = 0xF170; //关闭显示器的系统命令
            const int POWER_OFF = 2;            //2 为关闭, 1为省电状态,-1为开机
            IntPtr HWND_BROADCAST = new IntPtr(0xffff); //广播消息,所有顶级窗体都会接收
            //SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, POWER_OFF); // 关闭显示器
            SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_SCREENSAVE, 0);           // 启动屏保

这段代码的前提是设置好屏保程序,这是开户屏保的代码

应该有同仁会遇到相同的问题吧,能否指点一二呢?