Device:系统与硬件感知中心
Device 类是 AScript 提供的全方位系统监控工具。它采用静态嵌套类的设计,无需实例化即可直接获取硬件指纹、操作系统状态、屏幕 DPI 缩放以及实时硬件负载等信息。
1. 导入模块
# 导入设备信息类
from ascript.windows.system import Device
2. 身份与系统 (Identity & OS)
🆔 设备指纹 Device.id
获取基于硬件特征生成的唯一标识符。该 ID 具有强稳定性,重装系统通常不会改变。
代码块:
print(f"当前设备 ID: {Device.id}")
💻 操作系统 Device.os
获取 Windows 系统的详细运行状态。
属性列表:
- .type: (str) 系统类型(如
"Windows")。 - .release: (str) 发行版本(如
"10","11")。 - .boot_time: (str) 系统上次启动的时间点(格式:
YYYY-MM-DD HH:MM:SS)。 - .uptime_seconds: (int) 自启动以来已运行的总秒数。
3. 屏幕与显示 (Screen)
🖥️ 屏幕信息 Device.screen
自动计算 Windows 系统的 DPI 缩放,确保在不同显示器下定位准确。
属性列表:
- .scale: (float) 系统缩放系数。例如 125% 缩放返回
1.25。 - .percent: (str) 缩放百分比字符串(如
"125%")。 - .logical: (str) 逻辑分辨率(受缩放影响,脚本实际操作坐标系)。
- .physical: (str) 屏幕物理真实分辨率(面板原生像素)。
4. 硬件负载与状态 (Hardware)
⚙️ 核心负载
实时获取 CPU 和内存的使用情况。
属性列表:
- Device.cpu.usage: (float) 当前 CPU 总体占用百分比。
- Device.memory.total_gb: (float) 物理内存总量 (GB)。
- Device.memory.percent: (float) 内存当前占用百分比。
🎮 显卡信息 Device.gpu
- .list: (List[str]) 返回系统中检测到的所有显卡型号。
5. 存储与网络 (Storage & Network)
💿 磁盘管理 Device.disks
获取存储盘符及空间占用。
属性/方法:
- .list: (List[str]) 获取当前挂载的所有盘符(如
['C', 'D'])。 - .get_detail(drive): 获取指定磁盘的容量统计。
参数详解:
- drive (str): 盘符字母,如
"C"或"D"。 - 返回 (dict): 包含
total,free,percent的详细字典。
🌐 网络配置 Device.network
获取基础网络标识。
属性列表:
- .ip: (str) 当前内网 IP 地址。
- .mac: (str) 物理网卡 MAC 地址。
💡 案例演示
from ascript.windows.system import Device
# 1. 检查运行权限
if not Device.env.is_admin:
print("⚠️ 警告:当前未以管理员权限运行,部分操作可能受限")
# 2. 打印屏幕适配信息
print(f"系统缩放: {Device.screen.percent}")
print(f"逻辑分辨率: {Device.screen.logical} (脚本以此为准)")
# 3. 监控硬件健康
if Device.memory.percent > 90:
print("🚨 内存告急:当前占用已超过 90%!")
# 4. 获取 D 盘剩余空间
d_info = Device.disks.get_detail("D")
print(f"D 盘剩余空间: {d_info['free']}")
6. 其他环境信息
- Device.env.is_admin: (bool) 是否拥有管理员权限。
- Device.env.python_ver: (str) 当前 Python 版本。
- Device.power.is_plugged: (bool) 当前是否连接了电源适配器。
- Device.audio.list: (List[str]) 所有可用的音频输出设备。
调用规范
Device 类中的所有嵌套类均通过 classproperty 装饰。这意味着你不需要使用 Device() 进行实例化,直接通过类名访问即可获得实时数据。