编写诸如监控、多媒体、大规模数据处理之类程序的时候,我们常常需要禁用屏幕保护和电源管理,以确保程序的正常运行。一般来说,可以使用模拟鼠标键盘动作的办法禁用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 上面的代码仅仅为了说明调用序列,实际应用时还要加上相当多的错误处理代码,这里忽略。
分享到:
相关推荐
不仅如此,它还可以防止注销计算机,禁用监视器或激活屏幕保护程序。 当然,您也可以手动禁用所有选项,然后再次激活,但是使用“Don’t Sleep”功能可以节省很多手部动作,还可以节省时间!而且它比以往任何时候都...
3. **命令行**:对于基于X11的系统,可以使用`xset -dpms`命令禁用DPMS(能源之星显示器电源管理)功能,`xset s off`命令立即停止屏幕保护程序。 总的来说,禁止屏幕保护程序是一个跨平台的操作,涉及对系统设置的...
在防止显示器自动关闭时,我们可以使用`SPI_SETSCREENSAVEACTIVE`和`SPI_SETMONITORPOWER`标志来分别控制屏幕保护程序和显示器的电源状态。 在MFC框架下,我们通常会创建一个对话框类(如`CpreventDlg`),并在其中...
Windows7 旗舰版禁用屏幕自动调节亮度不让其变化 Windows7 旗舰版系统中,屏幕自动调节亮度功能是许多用户所不喜欢的,毕竟这个功能会导致屏幕亮度随着应用程序窗口的变化而发生变化。那么,如何关闭这个功能呢?...
2. 在设置界面的右侧,滚动到底部,找到“电源和睡眠”下的“额外电源设置”。 3. 点击“更改计划设置”,然后在“更改此计划的设置”界面中,将“使显示器进入睡眠”和“使计算机进入睡眠”都设置为“永不”。 三...
7. `powercfg /x`: 可以用来禁用或启用某些特定的电源选项,如自动休眠、屏保等。 如果"Powercfg.zip"中包含的文档详细指导如何恢复电源选项,那么用户可能需要按照以下步骤操作: 1. 解压缩文件,找到说明文档。 ...
首先,插件的实现依赖于Windows Mobile SDK,特别是涉及到电源管理和屏幕控制的相关API。开发者需要了解如何调用这些API来实现屏幕的锁定和解锁功能。例如,可能需要用到`PowerPolicyNotify`函数来改变电源状态,...
通过调用Windows API函数,如`SystemParametersInfo`,可以修改系统的屏幕保护设置,包括禁用或启用屏幕保护。 3. `SystemParametersInfo`函数:这是一个Windows API函数,用于获取或设置系统参数。它的第一个参数`...
- **调整视觉效果**: 减少或禁用桌面背景、屏幕保护程序等,以提高系统响应速度。 - **禁用系统声音**: 关闭系统声音可以提高性能。 - **禁用不必要的启动项**: 使用系统配置实用程序(msconfig)管理启动项,禁用不必...
以下是两种关闭Windows操作系统中屏幕保护程序的方法: **方法一:通过控制面板设置** 1. 在桌面的空白区域右键点击,然后选择“显示设置”或“属性”。 2. 在打开的窗口中,找到并点击“屏幕保护程序”选项。 3. ...
2. **桌面个性化**:学习如何更改桌面背景、调整屏幕分辨率、设置主题、创建和管理虚拟桌面,以提升工作效率和个性化体验。 3. **任务栏与开始菜单**:掌握任务栏的自定义方法,如固定常用应用、禁用跳转列表,以及...
1. 通过组策略禁用屏幕保护程序(适用于Windows 7专业版、旗舰版等,不适用于家庭版): - 按下Win+R快捷键打开“运行”对话框。 - 在输入框中键入`gpedit.msc`,然后回车,这将打开“本地组策略编辑器”。 - 在...
2. **使用命令行**:通过运行命令行,可以临时或永久地禁用屏幕保护。临时禁用:`rundll32.exe user32.dll, LockWorkStation`;永久禁用:修改注册表键`HKEY_CURRENT_USER\Control Panel\Desktop`下的`...
在给定的标签“Windows”、“WindowProtec”和“Sleepless”中,我们可以理解这是关于Windows系统中防止屏幕保护和系统休眠的讨论。 在Windows系统中,荧幕保护是为了节省能源和保护显示器而设计的。当用户在一段...
6. **禁用Windows Update服务**:在虚拟化环境中,更新通常由管理员集中控制,因此在模板中禁用Windows Update服务可以避免不必要的网络流量和系统重启。 7. **禁用Windows注册表备份和系统还原**:这些功能虽然...
10. 调整桌面属性:去除桌面背景和屏幕保护,关闭桌面壁纸自动转换,以及禁用菜单和工具提示的过渡效果,以减轻GPU负担。 11. 设置屏幕分辨率和颜色质量:根据显示器类型选择合适的分辨率和颜色质量,过高可能导致...
5. **界面定制**:Windows 8引入了全新的Modern UI界面,优化大师允许用户根据个人喜好调整开始屏幕的布局,自定义瓷砖大小和颜色,使操作更加符合个人习惯。 6. **隐私保护**:保护用户的隐私信息,如浏览器历史...
减少桌面背景和屏幕保护的复杂性,减少系统资源的消耗;同时,合理分配虚拟内存,可以提高系统运行速度。 8. **保持软件更新**: 定期检查并安装所有软件的最新更新,包括防病毒软件,以防止因软件过时而引发的...