Pixiv

OpenBaiduPan

用 Lazarus + Free Pascal 构建的百度网盘原生桌面客户端 —— 自绘云盘界面、亮暗双主题、后台线程传输引擎、高 DPI 适配,无 WebView、无浏览器依赖。

LazarusFree PascalLCL

OpenBaiduPan 是一个用 Lazarus + Free Pascal(LCL) 构建的百度网盘原生桌面客户端:控件全部自绘的现代云盘界面、后台线程传输引擎、高 DPI 适配,无 WebView、无浏览器依赖,也不依赖任何第三方组件包。API 行为对齐官方 baidu-drive-sdk-go。

功能特性

登录

  • 支持直接粘贴 access_token,或 OAuth 设备码流程(需在 pan.baidu.com/union 创建应用自备 App Key / Secret Key)
  • 凭据存 Windows 凭据管理器,重启免登录

网盘浏览与文件管理

  • 面包屑导航、分页(100/页)、名称 / 时间 / 大小排序、搜索框即时过滤、列表 / 宫格双视图、容量与会员信息
  • 新建文件夹、重命名、复制、移动、删除(进回收站);行复选框与表头三态全选联动,悬浮行显示快捷下载,右键菜单或双击行也可直接下载

下载

  • filemetas 取 dlink 后用 curl 断点续传(curl -C -),实时进度与速度(EMA 平滑)
  • 600ms 轮询目标文件大小推进度;服务器不支持断点续传时自动整档重试
  • 默认保存目录读注册表解析系统真实的「下载」文件夹;下载保留为记录,每条提供打开文件 / 打开所在目录 / 删除文件 / 删除记录

上传

  • 4 MiB 分片 MD5 → precreate(支持秒传)→ 分片写临时文件 → curl 分片上传 superfile2 → create 合并
  • 文件拖入窗口即可上传,上限 4 GiB

图片预览

  • 缩略图优先(url_2000 → icon 按清晰度选取),原图 ≤ 8 MiB 兜底;显示「宽 × 高 · 体积」,预览内可直接转下载原图

界面

  • 左侧边栏布局:品牌区、文件 / 传输导航(带进行中数量气泡)、存储空间卡片(用量 > 80% 变橙提醒)与用户区
  • 品牌蓝 #0C49FF 主色(深色主题 #4080FF),亮 / 暗双主题(启动跟随系统深浅色,可手动切换),Win11 标题栏整体着色
  • 全中文界面(Microsoft YaHei UI)

设计说明

  • 线程模型:UI 全部留在主线程,HTTP 请求与下载 / 上传在后台线程执行,结果经 Synchronize / Queue 回流,回调检查窗体存活防止关闭竞态
  • HTTP:走系统 WinInet,用系统证书库与代理配置,无需 OpenSSL DLL
  • 传输管线:下载 curl 退出码 33 时自动去掉 -C - 整档重试;上传单线程顺序执行流式分片 MD5 → precreate 秒传短路 → superfile2 → create
  • 高 DPI:全部界面常量按 96 DPI 设计,窗体构造完成后整体缩放,动态创建的控件与绘制常量经 DP() 换算,125% / 150% / 200% 缩放下显示正常
  • 全代码自绘界面:不依赖窗体设计器,按钮 / 卡片 / 列表 / 图标均自绘,主题切换即全局重着色;源码 UTF-8 with BOM 并全局设 CP_UTF8,fcl-json 的 \u 转义在解析前自行预解码

构建与运行

lazbuild OpenBaiduPan.lpi     # → OpenBaiduPan.exe

需要 Lazarus 4.x + FPC 3.2.2(仅依赖 LCL 与 FCL 自带单元,无需额外组件包)、Windows 10+(HTTPS 走系统 WinInet,下载 / 上传依赖系统自带 curl)。

0%