也可以把i7 cpu 降级成 i5 i3 奔腾,赛扬。
提升续航,降低噪音。神州笔记本好帮手,
[Python] 纯文本查看 复制代码import subprocess
import tkinter as tk
from tkinter import ttk, messagebox
def set_processor_power_settings(min_state, max_state, power_scheme):
try:
# 设置处理器最小状态
subprocess.run(
["powercfg", "/setacvalueindex" if power_scheme == "AC" else "/setdcvalueindex", "SCHEME_CURRENT",
"SUB_PROCESSOR", "PROCTHROTTLEMIN", str(min_state)],
check=True,
shell=True,
)
# 设置处理器最大状态
subprocess.run(
["powercfg", "/setacvalueindex" if power_scheme == "AC" else "/setdcvalueindex", "SCHEME_CURRENT",
"SUB_PROCESSOR", "PROCTHROTTLEMAX", str(max_state)],
check=True,
shell=True,
)
# 应用更改
subprocess.run(["powercfg", "/setactive", "SCHEME_CURRENT"], check=True, shell=True)
messagebox.showinfo(
"成功",
f"已设置处理器最小状态为 {min_state}%,最大状态为 {max_state}% ({power_scheme} 模式)",
)
except subprocess.CalledProcessError as e:
messagebox.showerror("错误", f"设置处理器电源管理失败: {e}")
def create_gui():
# 创建主窗口
root = tk.Tk()
root.title("CPU 电源管理工具")
# 设置最小窗口尺寸并居中
root.minsize(300, 200)
root.update_idletasks() # 确保窗口管理器处理配置
# 计算居中位置
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
window_width = 300
window_height = 300
x = (screen_width - window_width) // 2
y = (screen_height - window_height) // 2
root.geometry(f"{window_width}x{window_height}+{x}+{y}")
# 添加窗口图标(需要准备favicon.ico文件)
try:
root.iconbitmap("favicon.ico")
except tk.TclError:
print("警告:未找到favicon.ico,将使用默认窗口图标")
# 创建主标签(使用grid布局保证完整显示)
title_label = tk.Label(root, text="CPU 电源管理工具", font=("Arial", 16, "bold"))
title_label.grid(row=0, column=0, padx=10, pady=10, sticky="ew")
root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)
# 自定义设置部分
custom_frame = ttk.LabelFrame(root, text="自定义设置", padding=10)
custom_frame.grid(row=1, column=0, padx=10, pady=10, sticky="nsew")
root.grid_rowconfigure(1, weight=1)
root.grid_columnconfigure(0, weight=1)
# 最大状态滑块(从左到右,0-100)
max_state_var = tk.IntVar(value=100)
max_state_scale = ttk.Scale(
custom_frame,
from_=0, # 起始值
to=100, # 结束值
variable=max_state_var,
length=200, # 调整滑块长度适应新窗口尺寸
orient="horizontal"
)
max_state_scale.grid(row=0, column=0, padx=10, pady=10, sticky="ew")
# 滑块数值显示(添加在滑块右侧)
max_state_display = tk.Label(custom_frame, text="100%", width=5, anchor="e")
max_state_display.grid(row=0, column=1, padx=(0, 10), pady=10, sticky="e")
# 更新数值显示的回调函数
def update_display(*args):
value = max_state_var.get()
max_state_display.config(text=f"{value}%")
max_state_var.trace_add("write", update_display) # 绑定变量变化事件
update_display() # 初始化显示
# 电源模式选择(水平排列)
power_scheme_var = tk.StringVar(value="AC")
power_frame = ttk.Frame(custom_frame)
power_frame.grid(row=1, column=0, columnspan=2, padx=10, pady=5, sticky="ew")
ttk.Radiobutton(
power_frame,
text="AC 模式",
variable=power_scheme_var,
value="AC"
).pack(side="left", padx=(0, 20))
ttk.Radiobutton(
power_frame,
text="电池模式",
variable=power_scheme_var,
value="DC"
).pack(side="left")
# 提交按钮(居中显示)
submit_frame = ttk.Frame(custom_frame)
submit_frame.grid(row=2, column=0, columnspan=2, padx=10, pady=20, sticky="ew")
submit_button = ttk.Button(
submit_frame,
text="应用设置",
command=lambda: on_submit(max_state_var, power_scheme_var),
width=15,
)
submit_button.pack(side="top") # 默认居中
# 提交逻辑
def on_submit(max_state_var, power_scheme_var):
try:
# 固定最小状态为1%
min_state = 1
max_state = max_state_var.get()
power_scheme = power_scheme_var.get()
if 0