我习惯不关闭 Windows,而是让它休眠。我设置了电源按钮 (PB) 操作来执行此操作。当我想关机时,我必须转到开始 -> 关机。没问题。
现在我想到了一种可以连接到 PB 的机制。应该在我按下 PB 之后但在 OS 进入睡眠状态之前启动。它会检查一些条件(例如正在运行备份、正在运行 AV 扫描等),如果条件为真(某些程序正在运行),则阻止进入睡眠状态。
可选:最好在重启和关机之前启动相同的“机制”(不仅可以从“开始”菜单调用,还可以通过其他软件(即安装程序)调用,但可以选择允许某些来源(即 UPS 软件)
一般情况下:如何在 PowerButton 之后但在 Sleeping 之前运行某些操作。如何编写代码(C#.NET、vbs、批处理(首选))防止(取消)进入睡眠状态。
答案1
有时您可能会无意中关闭 Windows 7。Windows 7 会自动关闭所有程序,您可能会丢失更改。但您可以防止这种情况发生。操作方法如下:
关闭 Windows 7 关机时自动关闭程序
Windows 7 专业版:
- 按下Windows按钮并输入搜索
gpedit.msc
。右键单击它并以管理员权限运行。现在转到计算机配置→管理模板→系统→关机选项。在右侧窗格中,您将找到一个值关闭阻止或取消关机的应用程序的自动终止。双击它并选择已启用。单击确定保存设置并关闭对话框。
Windows 7 家庭版:
- 对于此版本的 Windows 7,你必须破解注册表或直接下载关闭自动关闭策略_win7.zip。只需将其解压到桌面上,然后双击 turnoff_autoclose_policy_win7.reg 并单击“是”。这将自动向注册表项添加一个新 → DWORD(32 位值)
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\System
。
Powercfg 命令行选项
在命令行中,您可以输入
POWERCFG -REQUESTSOVERRIDE PROCESS name_of_the_process Display System
,这将阻止 Windows 7 在某个进程运行时进入睡眠状态。我从未使用过它,所以你必须阅读手册这里。用法:
POWERCFG -REQUESTSOVERRIDE <CALLER_TYPE> <NAME> <REQUEST>
指定下列调用者类型之一:PROCESS、SERVICE、DRIVER。这可以通过调用 POWERCFG -REQUESTS 命令获得。指定调用者名称。这是调用 POWERCFG -REQUESTS 命令返回的名称。指定下列一个或多个电源请求类型:Display、System、Awaymode。例如:POWERCFG -REQUESTSOVERRIDE PROCESS wmplayer.exe 显示系统
要删除电源请求覆盖,请使用 -REQUESTSOVERRIDE 选项,但不要指定任何类型的覆盖(系统、显示、离开模式),如下例所示:
POWERCFG -REQUESTSOVERRIDE PROCESS wmplayer.exe