实际上,您可以使用powercfg 更改更多设置,然后使用/CHANGE(或-change 或-x)标志可用的设置。硬件电源按钮就是其中之一。开始菜单中还有一个关机按钮的设置,但我不确定它是否有帮助。无论如何,要检查您可以更改的电源方案的所有设置,您需要电源方案的 GUID(一个 36 个字符长的 ID)。 powercfg 始终为您提供使用别名而不是 GUID 的可能性。您可以选择,但 GUID 具有特定的形式,使其更易于在脚本中使用(可能在某些情况下除外)。别名更容易阅读、理解和记忆。
要搜索方案的 GUID,您可以使用:powercfg -list,它将为每个电源方案打印Power Scheme GUID: <GUID> (<NAME POWER SCHEME>) 形式的字符串(名称与别名不同)。然后,您可以使用findstr 选择特定的电源方案名称(或仅powercfg -getactivescheme 仅用于活动方案)并使用FOR /F 来提取GUID,如下所示:
FOR /F "tokens=4" %%G IN ('powercfg /getactivescheme') DO set activeschemeGUID=%%G
获得 GUID(或别名)后,您可以使用以下命令检查其整个配置:
powercfg -q <Scheme_GUID>
powercfg -q(或powercfg -q %activeschemeGUID%,带有第一个代码示例中的变量)将为您提供 GUID、别名和(一长串)您可以更改的活动方案的所有设置以及它们可以采用的值(在powercfg 他们实际上将其命名为值索引而不是值)。
设置按子组分组。每个子组和设置都有一个 GUID。最常见的子组和设置甚至有别名。要检查设置和子组的所有可用别名,您可以使用powercfg -aliases。您将需要 GUID(或别名,如果可用)来检查设置可以采用哪些值及其当前值:
powercfg -q <Scheme_GUID> <SUB_GUID> <Setting_GUID>
或更改其值:
powercfg -setacvalueindex <Scheme_GUID> <SUB_GUID> <Setting_GUID> <New_value_index>
powercfg -setdcvalueindex <Scheme_GUID> <SUB_GUID> <Setting_GUID> <New_value_index>
第一个将更改 AC 值索引,第二个将更改 DC(如果可用,请检查设置的值)。
您现在唯一需要的是设置正确的 GUID(或别名,如果可用)。
我会为您节省搜索时间,并为您提供我身边的 GUID。它们应该是默认值,但您始终可以通过在所有可用设置中搜索字符串“power”(不区分大小写的搜索)来查找它们。开始菜单中的硬件电源按钮操作设置和关机按钮操作设置都属于同一个子组:别名为SUB_BUTTONS 和GUID 4f971e89-eebd-4455-a8de-9e59040e7347 的子组。硬件按钮具有别名 PBUTTONACTION 和 GUID 7648efa3-dd9c-4e3e-b566-50f929386280。开始按钮具有别名 UIBUTTON_ACTION 和 GUID a7066653-8d6c-40a8-910e-a1f54b84c7e5。您可以使用powercfg -aliases 在命令行上检查它们。
在更改设置之前,请检查它们可以在命令行上采用哪些索引:
powercfg -q %activeschemeGUID% SUB_BUTTONS PBUTTONACTION
powercfg -q %activeschemeGUID% SUB_BUTTONS UIBUTTON_ACTION
如果这不起作用,您应该尝试使用 GUID 而不是别名,或者尝试为您的配置查找正确的 GUID/别名。
在查看所需的值索引后,您可以更改设置。就我而言,禁用硬件电源按钮的索引为 0。因此分别更改 AC 和 DC 是:
powercfg -setacvalueindex %activeschemeGUID% SUB_BUTTONS PBUTTONACTION 000
powercfg -setdcvalueindex %activeschemeGUID% SUB_BUTTONS PBUTTONACTION 000
不幸的是,我没有UIBUTTON_ACTION 的注销选项。所以我不能给你看那个,但它的原理是一样的。这也是为什么我不确定UIBUTTON_ACTION 是否能在开始菜单中发挥作用的原因。
对于开始菜单中的关机按钮,我知道windows 7还有另一个选项:更改位于HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced的注册表Start_PowerButtonAction。我警告你:更改注册表是微妙的,不是很好的做法,但有时它是更改某些配置的唯一方法。我不确定,但它可能还需要管理员权限,因此可能需要以管理员身份运行(有人可以确认这一点吗?)。
这些是注册表可以采用的十六进制值:
Action Value
------------ --------
Change User 100
Log Off 1
Lock 200
Restart 4
Sleep 10
Hibernate 40
Shutdown 2
您可以使用regedit GUI 来检查注册表的当前值。或者使用reg 在命令行上检查该值(EDIT:在reg 中使用HKCU 而不是HKEY_CURRENT_USER):
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Start_PowerButtonAction
在您检查注册表存在并且具有与您的开始菜单关闭按钮相对应的值后,您可以对其进行修改。但在修改任何注册表之前,请确保back-up the registry with regedit(this official Windows link 也提供帮助)以防出现问题。
要修改注册表Start_PowerButtonAction 并将“更改用户”设置为批量操作,您可以使用:
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Start_PowerButtonAction /t REG_DWORD /d 100 /f
如果它不存在,您可以使用相同的命令创建它并尝试一下。如果它不起作用,请使用备份至少恢复HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced 密钥。