![](/img/trans.png)
[英]Is it possible to use Windows-style command line options with Python?
[英]Use Python to Edit Windows 8 Power Options
問題:
每次我重新啟動我的電腦時,我的 Windows 8 電源設置 go 恢復默認設置,一小時后讓我的電腦進入睡眠狀態。 除非我這么說,否則我不希望我的計算機進入睡眠狀態...我必須在控制面板 > 系統和安全 > 電源選項 > 編輯計划設置中將 go 手動編輯為“從不”。
我想要的是:
一個 Python 腳本來編輯 Windows 8 中的電源選項。我將它設置為每次重新啟動時運行。
我搜索了 Python 模塊來編輯 Windows 設置,但找不到我想要的。 我曾經玩過 win32api 來控制我的課程,但在其文檔中找不到電源選項。
import subprocess subprocess.call("powercfg -change -standby-timeout-ac 0")
-standby-timeout-ac
選項設置為零,因此我的計算機永遠不會 go 進入睡眠狀態
我認為您應該查看powercfg Windows 的命令並使用 python 的subprocess.call
設置您喜歡的任何內容,例如:
import subprocess
subprocess.call("powercfg -change -monitor-timeout-ac 666")
我想這是不言自明的:將“-ac”更改為“-dc”以進行電池設置,值以分鍾為單位,零顯然代表無窮大。
我有一個與 win32com.client 密切相關的解決方案
它適用於 Windows 10
import win32com.client
class PowerPlan(Computer):
def __init__(self, mk="//./root/cimv2/power"):
super(PowerPlan, self).__init__(mk)
self.power_info = None
self.power_plan = None
def get_active_power_plan(self) -> str:
power_plans = self.wmi.InstancesOf("Win32_powerplan")
for plan in power_plans:
if plan.IsActive:
match = re.search(r'\{(.+?)\}', plan.InstanceID)
self.power_plan = plan
return match.group(1)
def get_power_plan_index(self, guid_id):
unknown_list = []
current_power_plan_index = {"AC": {}, "DC": {}}
power_index = self.wmi.InstancesOf("Win32_powersettingdataindex")
for power_value in power_index:
# print(type(power_value))
# print(dir(power_value))
match = re.search(guid_id, power_value.InstanceID)
if match is not None:
match = re.search(guid_id + r'\}\\(\w{2})\\\{(.+?)\}', power_value.InstanceID)
power_mode = match.group(1)
power_tag = match.group(2)
try:
power_word = PowerPlanGUID(power_tag).name
except Exception as Err:
# print("Unknown Tag GUID: " + power_tag)
if power_tag not in unknown_list:
unknown_list.append(power_tag)
continue
# power_info = {power_word : power_value.settingindexvalue}
current_power_plan_index[power_mode][power_word] = power_value.settingindexvalue
self.power_info = current_power_plan_index
self._json_dump(self.power_info)
def set_power_plan_value(self, act_plan_guid, power_mode, power_plan_value_guid, value):
power_index = self.wmi.InstancesOf("Win32_powersettingdataindex")
for power_setting in power_index:
match = re.search(act_plan_guid + r'\}\\' + power_mode + r'\\\{' + power_plan_value_guid + r'\}',
power_setting.InstanceID)
# match = re.search(power_plan_value_guid, power_setting.InstanceID)
if match is not None:
print(power_setting.InstanceID)
print(power_setting.settingindexvalue)
# Properties_
power_setting.Properties_("SettingIndexValue").Value = value
# How to make the changed value work
power_setting.Put_()
act_method = self.power_plan.Methods_("Activate")
self.power_plan.ExecMethod_("Activate")
else:
pass
我知道這有點晚了,但是已經發布了一個名為“powerplan”的新模塊。
pip install powerplan
然后導入模塊:
import powerplan
要獲取您當前的電源計划方案,請使用:
print(powerplan.get_current_scheme_name())
print(powerplan.get_current_scheme_guid())
要更改您的電源計划方案,請使用:
powerplan.change_current_scheme_to_powersaver()
powerplan.change_current_scheme_to_balanced()
powerplan.change_current_scheme_to_high()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.