You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows任务计划程序不执行Python屏幕亮度调整脚本的原因是什么?

修复步骤

1. 修正批处理文件

你当前的批处理里有pause命令,任务计划后台执行时会阻塞进程等待输入,直接删除即可。同时补充路径切换和日志输出方便排查问题,修改后的批处理内容如下:

@echo off
cd /d "C:\Users\dannl\scripts\"
"C:\Users\dannl\AppData\Local\Programs\Python\Python39\pythonw.exe" "brightness.pyw" >> brightness_run_log.txt 2>&1

这里改用pythonw.exe运行.pyw后缀的脚本,不会弹出控制台窗口,同时把运行日志输出到同目录的txt文件,方便后续定位报错。

2. 调整任务计划配置

  • 安全选项必须勾选「仅在用户登录时运行」:调整屏幕亮度的API需要运行在用户图形会话中,选择「不管用户是否登录都运行」会导致程序跑在无图形权限的系统会话,调用亮度调整接口直接失效。
  • 勾选「使用最高权限运行」:修改系统显示参数需要管理员权限,未勾选时权限不足会导致操作无响应。
  • 操作页的「起始于(可选)」填写脚本所在目录C:\Users\dannl\scripts\,避免相对路径读取错误。
  • 设置页勾选「请勿启动新实例」,避免脚本重复运行产生冲突。

3. 优化脚本鲁棒性

你当前脚本没有网络请求异常捕获,当ipstack接口请求失败时会直接崩溃退出,可补充异常捕获逻辑,示例修改如下:

# importing the module
import screen_brightness_control as sbc
import datetime
from datetime import timezone
import json
import requests
import sys
from suntime import Sun
import time

try:
    send_url = "http://api.ipstack.com/check?access_key=68d6a43e7f37d2152f9bb7dc199b87ef"
    geo_req = requests.get(send_url, timeout=10)
    geo_req.raise_for_status()
    geo_json = json.loads(geo_req.text)
    latitude = geo_json['latitude']
    longitude = geo_json['longitude']
except Exception as e:
    # 网络请求失败时替换为你所在城市的固定经纬度即可
    latitude = 39.9042
    longitude = 116.4074

sun = Sun(latitude, longitude)

today_sr = sun.get_sunrise_time()
today_ss = sun.get_sunset_time()

print(today_sr)
print(today_ss)

while True:
    current_time = datetime.datetime.now(timezone.utc)
    if today_ss > current_time > today_sr and sbc.get_brightness() != 100:
        sbc.fade_brightness(100, interval=5)
    elif current_time > today_ss and sbc.get_brightness() != 0:
        sbc.fade_brightness(0, interval=5)
        sys.exit()
    time.sleep(60)

修改完成后先手动运行批处理确认效果正常,再到任务计划中点击运行测试,如果仍有问题直接查看同目录生成的日志文件即可定位具体报错。

内容的提问来源于stack exchange,提问作者DNL317

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 06:30:03