本文目录导读:

我来帮你写一个记录电脑使用时长的脚本,这里提供两个版本:一个简单的Windows批处理版本和一个功能更完整的Python版本。
Windows 批处理版本
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
:: 设置日志文件路径
set LOGFILE=%USERPROFILE%\Desktop\电脑使用记录.log
set DATAFILE=%USERPROFILE%\Desktop\usage_data.txt
:: 如果数据文件不存在,创建初始记录
if not exist "%DATAFILE%" (
echo 0> "%DATAFILE%"
)
:: 获取当前日期和时间
for /f "tokens=1-3 delims=/ " %%a in ('date /t') do set current_date=%%a%%b%%c
for /f "tokens=1-2 delims=:" %%a in ('time /t') do set current_time=%%a:%%b
:: 记录开机时间
echo.
echo ========================================
echo 电脑使用时间记录系统
echo ========================================
echo 开机时间: %date% %time%
echo 当前时间: %current_date% %current_time%
echo.
:: 显示今日已用时间
set total_minutes=0
if exist "%DATAFILE%" (
for /f %%a in ('type "%DATAFILE%"') do set total_minutes=%%a
)
:: 计算使用时间(这里简化处理,假设每天记录)
set /a hours=total_minutes/60
set /a minutes=total_minutes%%60
echo 今日累计使用时间: !hours!小时 !minutes!分钟
echo.
echo 记录已保存到: %LOGFILE%
:: 将记录写入日志
echo [%date% %time%] 开机使用记录 >> "%LOGFILE%"
timeout /t 10 >nul
exit
Python 完整版本(推荐)
import time
import datetime
import os
import json
from pathlib import Path
class UsageTracker:
def __init__(self):
# 设置存储文件路径
self.base_dir = Path.home() / "电脑使用记录"
self.base_dir.mkdir(exist_ok=True)
self.data_file = self.base_dir / "usage_data.json"
self.log_file = self.base_dir / "usage_log.txt"
self.load_data()
def load_data(self):
"""加载持久化数据"""
if self.data_file.exists():
try:
with open(self.data_file, 'r', encoding='utf-8') as f:
self.data = json.load(f)
except:
self.data = {}
else:
self.data = {}
def save_data(self):
"""保存数据"""
with open(self.data_file, 'w', encoding='utf-8') as f:
json.dump(self.data, f, ensure_ascii=False, indent=2)
def record_daily_usage(self):
"""记录每日使用情况"""
today = datetime.date.today().isoformat()
current_time = datetime.datetime.now()
# 如果今天还没有记录,初始化
if today not in self.data:
self.data[today] = {
"first_seen": current_time.isoformat(),
"last_seen": current_time.isoformat(),
"total_minutes": 0,
"sessions": []
}
else:
# 计算上次会话持续时间
last_seen = datetime.datetime.fromisoformat(self.data[today]["last_seen"])
time_diff = current_time - last_seen
# 如果间隔时间合理(不超过5分钟),则累计
if time_diff.total_seconds() < 300: # 5分钟间隔
additional_minutes = time_diff.total_seconds() / 60
self.data[today]["total_minutes"] += additional_minutes
self.data[today]["last_seen"] = current_time.isoformat()
else:
# 新会话开始
self.data[today]["sessions"].append({
"start": current_time.isoformat(),
"end": current_time.isoformat()
})
self.data[today]["first_seen"] = self.data[today].get("first_seen", current_time.isoformat())
self.data[today]["last_seen"] = current_time.isoformat()
self.save_data()
self.write_log(today, current_time)
def write_log(self, today, current_time):
"""写入日志文件"""
with open(self.log_file, 'a', encoding='utf-8') as f:
f.write(f"[{current_time.strftime('%Y-%m-%d %H:%M:%S')}] 使用记录已更新\n")
def get_daily_report(self, days=7):
"""获取最近几天的使用报告"""
report_lines = []
report_lines.append("=" * 50)
report_lines.append(" 电脑使用时间报告")
report_lines.append("=" * 50)
report_lines.append("")
all_days = sorted(self.data.keys(), reverse=True)[:days]
for day in all_days:
if day in self.data:
minutes = self.data[day]["total_minutes"]
hours = int(minutes // 60)
mins = int(minutes % 60)
report_lines.append(f"{day}: {hours}小时{mins:02d}分钟")
return "\n".join(report_lines)
def run_monitor(self, interval=60):
"""运行监控(每60秒检查一次)"""
print("开始监控电脑使用时间...")
print("按 Ctrl+C 停止监控")
print("=" * 50)
try:
while True:
self.record_daily_usage()
time.sleep(interval) # 每60秒记录一次
except KeyboardInterrupt:
print("\n监控已停止")
print(self.get_daily_report())
print(f"数据保存在: {self.data_file}")
# 菜单式界面
def main():
tracker = UsageTracker()
while True:
print("\n" + "=" * 50)
print(" 电脑使用时间记录系统")
print("=" * 50)
print("1. 开始实时监控")
print("2. 查看使用报告")
print("3. 手动记录当前使用")
print("4. 退出")
print("=" * 50)
choice = input("请选择操作 (1-4): ").strip()
if choice == "1":
tracker.run_monitor()
elif choice == "2":
days = input("查询最近几天 (默认7天): ").strip() or "7"
print("\n" + tracker.get_daily_report(int(days)))
elif choice == "3":
tracker.record_daily_usage()
print("记录成功!")
elif choice == "4":
print("再见!")
break
else:
print("无效选择,请重试")
if __name__ == "__main__":
main()
使用方法
Python版本:
python usage_tracker.py
主要功能:
- 实时监控 - 自动记录使用时间
- 使用报告 - 查看每日/近期的使用统计
- 数据持久化 - 数据保存在用户目录下
可选增强功能:
# 添加系统托盘图标版本(需要安装 pystray)
def run_with_tray():
"""系统托盘版本"""
try:
import pystray
from PIL import Image
def on_exit(icon, item):
tracker.save_data()
icon.stop()
# 简单的图标(可以替换为自定义图标)
image = Image.new('RGB', (64, 64), color='blue')
menu = pystray.Menu(
pystray.MenuItem("显示报告", lambda: print(tracker.get_daily_report())),
pystray.MenuItem("退出", on_exit)
)
icon = pystray.Icon("电脑使用记录", image, "电脑使用记录", menu)
icon.run()
except ImportError:
print("需要安装 pystray: pip install pystray")
这些脚本会自动记录你的电脑使用时间,数据保存在用户目录下的"电脑使用记录"文件夹中,你可以根据需要调整监控间隔时间(默认60秒)和报告天数。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播