`
shangjava
  • 浏览: 1228038 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

如何禁用Windows屏保和电源管理

阅读更多

编写诸如监控、多媒体、大规模数据处理之类程序的时候,我们常常需要禁用屏幕保护和电源管理,以确保程序的正常运行。一般来说,可以使用模拟鼠标键盘动作的办法禁用95下的屏幕保护和电源管理,但是同样的方法应用到2000/NT,却常常会无效,这和系统的设置有关系。
运用Windows平台SDK的界面API可以轻松的做到禁用屏幕保护和电源管理,唯一的缺陷是这种方法无法应用到Windows95下的Win32应用程序中。以下,我将介绍具体方法。

使用SystemParametersInfo这个API来实现对屏幕保护和电源管理的禁用:
BOOL SystemParametersInfo(
UINT uiAction, // system parameter to retrieve or set
UINT uiParam, // depends on action to be taken
PVOID pvParam, // depends on action to be taken
UINT fWinIni // user profile update option
);

以下是禁用屏幕保护的代码:
void DisableScrSaver()
{
BOOL bScrActive;
SystemParametersInfo(SPI_GETSCREENSAVEACTIVE, 0, &bScrActive, 0);
if (bScrActive)
{
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, FALSE, NULL, 0);
}
}
以下是启用屏幕保护的代码:
void CNetRGCltDlg::EnableScrSaver()
{
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, TRUE, NULL, 0);
}

由于禁用电源保护不可以在Win95下被Win32应用程序使用,所以要事先判断当前操作系统是不是Win95,这里假设已经用函数BOOL IsWin95()实现。
以下是禁用电源保护的代码:
void DisablePmmSaver()
{
//
// 由于电源管理的特殊性,不能直接用SPI_SETLOWPOWERACTIVE命令字实现,而是要设置延时。
//

SystemParametersInfo(SPI_GETLOWPOWERTIMEOUT, 0, &m_nLowpowerTimeout, 0);
SystemParametersInfo(SPI_GETPOWEROFFTIMEOUT, 0, &m_nPoweroffTimeout, 0);
SystemParametersInfo(SPI_SETLOWPOWERTIMEOUT, 0, NULL, 0);
SystemParametersInfo(SPI_SETPOWEROFFTIMEOUT, 0, NULL, 0);
}

以下是启用电源保护的代码
void EnablePmmSaver()
{
SystemParametersInfo(SPI_SETLOWPOWERTIMEOUT, m_nLowpowerTimeout, NULL, 0);
SystemParametersInfo(SPI_SETPOWEROFFTIMEOUT, m_nPoweroffTimeout, NULL, 0);

m_nLowpowerTimeout = 0;
m_nPoweroffTimeout = 0;
}

说明:
1 m_nLowpowerTimeout和m_nPoweroffTimeout是用来存储原先延时的变量,当恢复电源保护时要把电源保护延时设置回原来的值;
2 上面的代码仅仅为了说明调用序列,实际应用时还要加上相当多的错误处理代码,这里忽略。

分享到:
评论

相关推荐

    Windows 电源管理工具 Don’t Sleep 8.11 中文版.zip

    不仅如此,它还可以防止注销计算机,禁用监视器或激活屏幕保护程序。 当然,您也可以手动禁用所有选项,然后再次激活,但是使用“Don’t Sleep”功能可以节省很多手部动作,还可以节省时间!而且它比以往任何时候都...

    禁止屏幕保护程序

    3. **命令行**:对于基于X11的系统,可以使用`xset -dpms`命令禁用DPMS(能源之星显示器电源管理)功能,`xset s off`命令立即停止屏幕保护程序。 总的来说,禁止屏幕保护程序是一个跨平台的操作,涉及对系统设置的...

    vc win32 win api 防止 屏幕保护 防止显示器自动关闭

    在防止显示器自动关闭时,我们可以使用`SPI_SETSCREENSAVEACTIVE`和`SPI_SETMONITORPOWER`标志来分别控制屏幕保护程序和显示器的电源状态。 在MFC框架下,我们通常会创建一个对话框类(如`CpreventDlg`),并在其中...

    Windows7旗舰版禁用屏幕自动调节亮度不让其变化.docx

    Windows7 旗舰版禁用屏幕自动调节亮度不让其变化 Windows7 旗舰版系统中,屏幕自动调节亮度功能是许多用户所不喜欢的,毕竟这个功能会导致屏幕亮度随着应用程序窗口的变化而发生变化。那么,如何关闭这个功能呢?...

    如何静止屏幕保护程序

    2. 在设置界面的右侧,滚动到底部,找到“电源和睡眠”下的“额外电源设置”。 3. 点击“更改计划设置”,然后在“更改此计划的设置”界面中,将“使显示器进入睡眠”和“使计算机进入睡眠”都设置为“永不”。 三...

    Powercfg.zip

    7. `powercfg /x`: 可以用来禁用或启用某些特定的电源选项,如自动休眠、屏保等。 如果"Powercfg.zip"中包含的文档详细指导如何恢复电源选项,那么用户可能需要按照以下步骤操作: 1. 解压缩文件,找到说明文档。 ...

    Windows Mobile Professional 自动锁定屏幕今日插件源代码带安装程序工程

    首先,插件的实现依赖于Windows Mobile SDK,特别是涉及到电源管理和屏幕控制的相关API。开发者需要了解如何调用这些API来实现屏幕的锁定和解锁功能。例如,可能需要用到`PowerPolicyNotify`函数来改变电源状态,...

    易语言源码用代码禁止或启动屏幕保护.rar

    通过调用Windows API函数,如`SystemParametersInfo`,可以修改系统的屏幕保护设置,包括禁用或启用屏幕保护。 3. `SystemParametersInfo`函数:这是一个Windows API函数,用于获取或设置系统参数。它的第一个参数`...

    VMware_VDI_Horizon_View优化指南_For_Windows_XP_and_Windows_7

    - **调整视觉效果**: 减少或禁用桌面背景、屏幕保护程序等,以提高系统响应速度。 - **禁用系统声音**: 关闭系统声音可以提高性能。 - **禁用不必要的启动项**: 使用系统配置实用程序(msconfig)管理启动项,禁用不必...

    电脑关闭屏幕保护程序的两个办法.docx

    以下是两种关闭Windows操作系统中屏幕保护程序的方法: **方法一:通过控制面板设置** 1. 在桌面的空白区域右键点击,然后选择“显示设置”或“属性”。 2. 在打开的窗口中,找到并点击“屏幕保护程序”选项。 3. ...

    Windows 10系统使用和防护技巧

    2. **桌面个性化**:学习如何更改桌面背景、调整屏幕分辨率、设置主题、创建和管理虚拟桌面,以提升工作效率和个性化体验。 3. **任务栏与开始菜单**:掌握任务栏的自定义方法,如固定常用应用、禁用跳转列表,以及...

    Win7系统如何解决-改进电源使用-错误提示问题.docx

    1. 通过组策略禁用屏幕保护程序(适用于Windows 7专业版、旗舰版等,不适用于家庭版): - 按下Win+R快捷键打开“运行”对话框。 - 在输入框中键入`gpedit.msc`,然后回车,这将打开“本地组策略编辑器”。 - 在...

    windows防锁

    2. **使用命令行**:通过运行命令行,可以临时或永久地禁用屏幕保护。临时禁用:`rundll32.exe user32.dll, LockWorkStation`;永久禁用:修改注册表键`HKEY_CURRENT_USER\Control Panel\Desktop`下的`...

    避免进入荧幕保护程式

    在给定的标签“Windows”、“WindowProtec”和“Sleepless”中,我们可以理解这是关于Windows系统中防止屏幕保护和系统休眠的讨论。 在Windows系统中,荧幕保护是为了节省能源和保护显示器而设计的。当用户在一段...

    vmware view Win7部署模版优化

    6. **禁用Windows Update服务**:在虚拟化环境中,更新通常由管理员集中控制,因此在模板中禁用Windows Update服务可以避免不必要的网络流量和系统重启。 7. **禁用Windows注册表备份和系统还原**:这些功能虽然...

    windows系统优化设置.docx

    10. 调整桌面属性:去除桌面背景和屏幕保护,关闭桌面壁纸自动转换,以及禁用菜单和工具提示的过渡效果,以减轻GPU负担。 11. 设置屏幕分辨率和颜色质量:根据显示器类型选择合适的分辨率和颜色质量,过高可能导致...

    windows8优化大师

    5. **界面定制**:Windows 8引入了全新的Modern UI界面,优化大师允许用户根据个人喜好调整开始屏幕的布局,自定义瓷砖大小和颜色,使操作更加符合个人习惯。 6. **隐私保护**:保护用户的隐私信息,如浏览器历史...

    怎样消除Windows故障.docx

    减少桌面背景和屏幕保护的复杂性,减少系统资源的消耗;同时,合理分配虚拟内存,可以提高系统运行速度。 8. **保持软件更新**: 定期检查并安装所有软件的最新更新,包括防病毒软件,以防止因软件过时而引发的...

Global site tag (gtag.js) - Google Analytics