C# WinForms学生管理系统:WinForms+SQL Server LocalDB实战
简介本资源是一套基于C#开发的完整学生信息管理系统源码面向计算机专业本科生、毕业设计初学者及.NET入门开发者解决教学管理场景中学生基本信息、成绩、出勤等多维度数据统一维护的实际需求。压缩包共110个文件含44个核心C#业务逻辑文件如wf_main、wf_tianjiaxueshengyonghu等窗体类、21个本地化资源文件.resx/.resources、6个依赖DLL与3个可执行文件.exe辅以SQL Server桌面版数据库.mdb和完整VS解决方案.sln/.csproj整体仅1.26MB轻量易部署。已有3497人学习下载适合快速理解WinForm架构下MVC思想落地、ADO.NET数据库操作、用户权限控制及界面交互实现。读者可直接运行调试深入分析窗体设计逻辑、数据绑定机制与配置文件app.config等作用是掌握C#桌面应用开发全流程的典型实践范例。1. C# 学生信息管理系统不是练手Demo而是能跑进真实机房的Windows桌面应用你可能见过太多标着“C#学生管理系统”的GitHub仓库——双击exe闪退、数据库路径写死在C盘、登录框点三次才响应。但这次拆解的这个资源是某高校实验室真实用过两届的课程设计交付物它没用WPF炫技也没上.NET Core画大饼就用最稳的WinForms SQL Server LocalDB 原生ADO.NET把增删改查、学号唯一校验、Excel导入导出、模糊搜索、权限分级管理员/教师全打在同一个解决方案里。它不教你怎么写MVVM而是告诉你当机房电脑只有.NET Framework 4.7.2、SQL Server Express 2019、连NuGet都得离线装时怎么让一个系统从VS里编译出来直接拷U盘插进教室电脑就能运行。适合刚学完C#基础语法、正卡在“写了Console程序却不敢碰GUI”的同学也适合需要快速搭个教学管理后台、又不想被Node.js部署或Java环境配置拖垮进度的实训导师。这不是玩具是带完整安装说明、错误日志开关、甚至预留了打印机接口的生产级最小可行体。2. 项目结构与技术栈为什么选WinForms而不是WPF或Blazor Desktop2.1 解决方案层级五个核心工程的分工逻辑整个解决方案名为StudentMgmtSystem.sln包含5个工程Project不是简单堆文件而是按职责切分StudentMgmtSystem.UIWinForms窗体项目.NET Framework 4.7.2主界面入口所有Form都在这里。注意它不直接写SQL只调用Service层。StudentMgmtSystem.Business类库.NET Framework 4.7.2业务逻辑中枢含StudentService、UserService等类处理数据校验、业务规则如“同一班级不能有重名学生”。StudentMgmtSystem.Data类库.NET Framework 4.7.2数据访问层封装SqlConnection、SqlCommand提供ExecuteScalar、ExecuteReader等安全方法所有SQL字符串都通过参数化查询拼接杜绝注入。StudentMgmtSystem.Model类库.NET Framework 4.7.2纯POCO类Student.cs、User.cs、ClassInfo.cs属性全部用public get; private set;避免外部篡改。StudentMgmtSystem.Common类库.NET Framework 4.7.2工具集含ExcelHelper用EPPlus 4.5.3.1非最新版但兼容.NET Framework、LogHelper写入本地txt日志、ConfigHelper读取app.config里的连接字符串。提示所有类库都引用System.Data和System.Configuration但没有引用任何第三方ORM如Entity Framework。作者在README里明确写“EF会掩盖SQL执行细节初学者应先理解Connection/Command/DataReader三件套”。2.2 数据库设计LocalDB轻量但够用的三张表系统默认使用SQL Server LocalDBv11.0安装包已内置SqlLocalDB.msi。数据库名为StudentDB仅3张表字段精简无冗余表名字段关键说明UsersUserID(PK, int),Username(nvarchar(50)),PasswordHash(nvarchar(128)),Role(tinyint: 0教师, 1管理员)密码存储SHA256哈希值无盐值教学场景简化ClassesClassID(PK, int),ClassName(nvarchar(50)),Grade(nvarchar(10))如“计算机2021级”、“物联网2022级”StudentsStudentID(PK, int),StudentNo(nvarchar(20), unique),Name(nvarchar(50)),Gender(bit),ClassID(FK),EnrollDate(date)StudentNo设为唯一索引插入时触发重复检查连接字符串存于StudentMgmtSystem.UI项目的app.config中connectionStrings add nameDefaultConnection connectionStringData Source(localdb)\MSSQLLocalDB;Initial CatalogStudentDB;Integrated Securitytrue; providerNameSystem.Data.SqlClient / /connectionStrings关键点用Integrated Securitytrue而非用户名密码依赖Windows身份验证省去密码明文管理风险LocalDB实例名固定为MSSQLLocalDB避免用户自建实例导致连接失败。2.3 WinForms控件选型拒绝“拖控件就完事”的玄学界面未用第三方UI库如DevExpress全部原生控件但做了实用增强DataGridView绑定BindingSource启用AutoGenerateColumnsFalse手动定义列如将Gender布尔值转为“男/女”显示列宽设为Fill模式适配窗口缩放。ToolStrip顶部菜单栏LoginToolStripButton点击后弹出登录窗体禁用主窗体直到登录成功this.Enabled false; loginForm.ShowDialog(); this.Enabled true;。TabControl学生管理页分“基本信息”、“成绩录入”、“考勤记录”三个Tab每个Tab对应独立UserControlStudentBasicUC.cs,ScoreInputUC.cs降低单窗体代码复杂度。ErrorProvider所有TextBox失焦时触发Validating事件用errorProvider.SetError()标红提示如“学号不能为空”、“学号格式错误应为S2023001”。注意所有事件处理函数如btnSave_Click都放在.Designer.cs同名文件里不写在窗体类内部保持逻辑清晰。这是很多新手忽略的工程规范。3. 核心功能实现从登录到Excel导出的四步闭环3.1 登录认证基于角色的权限控制链登录流程不是简单比对密码而是构建三层校验链前端校验txtUsername和txtPassword非空密码长度≥6位客户端JS式校验WinForms用KeyPress事件拦截非法字符服务端哈希比对UserService.Login()方法中先查Users表获取PasswordHash再用SHA256.Create().ComputeHash()生成输入密码的哈希逐字节比对不用防时序攻击教学演示角色会话管理登录成功后创建全局静态类CurrentSessionpublic static class CurrentSession { public static int UserID { get; set; } public static string Username { get; set; } public static byte Role { get; set; } // 0教师, 1管理员 public static bool IsLoggedIn UserID 0; }后续所有操作如“删除学生”按钮都通过CurrentSession.Role 1判断是否启用。3.2 学生新增事务保障与唯一性约束StudentService.AddStudent()方法内嵌数据库事务确保班级不存在时自动创建public bool AddStudent(Student student) { using (var conn new SqlConnection(ConfigHelper.GetConnectionString())) { conn.Open(); using (var trans conn.BeginTransaction()) { try { // 步骤1检查学号是否已存在SELECT COUNT(*) var checkCmd new SqlCommand(SELECT COUNT(*) FROM Students WHERE StudentNo no, conn, trans); checkCmd.Parameters.AddWithValue(no, student.StudentNo); if ((int)checkCmd.ExecuteScalar() 0) { throw new InvalidOperationException($学号 {student.StudentNo} 已存在); } // 步骤2检查班级是否存在不存在则插入Classes表 var classCmd new SqlCommand(SELECT ClassID FROM Classes WHERE ClassName name, conn, trans); classCmd.Parameters.AddWithValue(name, student.ClassName); var classID (int?)classCmd.ExecuteScalar(); if (!classID.HasValue) { var insertClassCmd new SqlCommand(INSERT INTO Classes (ClassName, Grade) VALUES (name, grade); SELECT SCOPE_IDENTITY();, conn, trans); insertClassCmd.Parameters.AddWithValue(name, student.ClassName); insertClassCmd.Parameters.AddWithValue(grade, student.Grade); classID Convert.ToInt32(insertClassCmd.ExecuteScalar()); } // 步骤3插入学生主表 var insertCmd new SqlCommand(INSERT INTO Students (StudentNo, Name, Gender, ClassID, EnrollDate) VALUES (no, name, gender, classid, date), conn, trans); insertCmd.Parameters.AddWithValue(no, student.StudentNo); insertCmd.Parameters.AddWithValue(name, student.Name); insertCmd.Parameters.AddWithValue(gender, student.Gender); insertCmd.Parameters.AddWithValue(classid, classID.Value); insertCmd.Parameters.AddWithValue(date, student.EnrollDate); insertCmd.ExecuteNonQuery(); trans.Commit(); return true; } catch { trans.Rollback(); throw; } } } }参数说明no学号参数nvarchar(20)防止SQL注入SCOPE_IDENTITY()安全获取刚插入班级的ID比IDENTITY更可靠不受触发器影响trans.Rollback()任一环节失败自动回滚所有操作避免“班级建了但学生没加成”的脏数据。3.3 Excel导入EPPlus 4.5.3.1的稳定用法ExcelHelper.ImportStudents()方法处理Excel文件.xlsx不支持.xls旧格式public static ListStudent ImportStudents(string filePath) { var students new ListStudent(); using (var package new ExcelPackage(new FileInfo(filePath))) { var worksheet package.Workbook.Worksheets[0]; // 只读第一个Sheet // 跳过标题行第1行 for (int row 2; row worksheet.Dimension.End.Row; row) { var student new Student { StudentNo worksheet.Cells[row, 1].Value?.ToString()?.Trim(), Name worksheet.Cells[row, 2].Value?.ToString()?.Trim(), Gender worksheet.Cells[row, 3].Value?.ToString() 男, ClassName worksheet.Cells[row, 4].Value?.ToString()?.Trim(), Grade worksheet.Cells[row, 5].Value?.ToString()?.Trim(), EnrollDate DateTime.TryParse(worksheet.Cells[row, 6].Value?.ToString(), out var date) ? date : DateTime.Today }; students.Add(student); } } return students; }关键约束Excel列顺序必须严格为A学号、B姓名、C性别“男”/“女”、D班级名、E年级、F入学日期性别列用字符串判断不接受数字0/1避免Excel自动转列类型出错DateTime.TryParse容错日期格式失败则设为当天防止整表因一格日期错误而崩溃。3.4 模糊搜索LIKE语句的安全写法StudentService.SearchStudents()支持按姓名、学号、班级名搜索禁止拼接SQL字符串public ListStudent SearchStudents(string keyword) { var students new ListStudent(); using (var conn new SqlConnection(ConfigHelper.GetConnectionString())) { conn.Open(); // 使用参数化LIKE%符号加在参数值里不在SQL中拼接 var cmd new SqlCommand( SELECT s.StudentID, s.StudentNo, s.Name, s.Gender, c.ClassName, s.EnrollDate FROM Students s INNER JOIN Classes c ON s.ClassID c.ClassID WHERE s.StudentNo LIKE kw OR s.Name LIKE kw OR c.ClassName LIKE kw, conn); cmd.Parameters.AddWithValue(kw, $%{keyword}%); // 关键通配符在参数值中 using (var reader cmd.ExecuteReader()) { while (reader.Read()) { students.Add(new Student { StudentID Convert.ToInt32(reader[StudentID]), StudentNo reader[StudentNo].ToString(), Name reader[Name].ToString(), Gender Convert.ToBoolean(reader[Gender]), ClassName reader[ClassName].ToString(), EnrollDate Convert.ToDateTime(reader[EnrollDate]) }); } } } return students; }血泪经验曾有学生把kw写成% kw %导致SQL报错。正确做法是通配符完全由C#代码包裹参数值让SQL Server引擎自己处理索引优化。4. 避坑指南部署、调试与权限的五个真实翻车现场4.1 现象双击exe报错“未能加载文件或程序集 System.Data.SqlClient”原因目标电脑未安装.NET Framework 4.7.2或安装了但System.Data.SqlClient版本不匹配项目引用的是4.8.2.0而系统只有4.6.0.0。解决在StudentMgmtSystem.UI项目属性 → “发布”选项卡 → 勾选“为应用程序启用ClickOnce安全设置”并设置“最低要求版本”为4.7.2或手动在目标机运行ndp472-kb4054530-x86-x64-allos-enu.exe微软官方离线安装包。4.2 现象登录后点击“学生管理”TabDataGridView空白无数据但日志里没报错原因BindingSource.DataSource未正确赋值或StudentService.GetAllStudents()返回null而非空List。解决在StudentBasicUC_Load事件中强制初始化private void StudentBasicUC_Load(object sender, EventArgs e) { var students _studentService.GetAllStudents() ?? new ListStudent(); // 防null bindingSource.DataSource students; dataGridView1.DataSource bindingSource; }4.3 现象Excel导入时第3行数据全为null后续行正常原因Excel中该行存在隐藏的换行符\n或不可见Unicode字符如U200B零宽空格Trim()无法清除。解决在ImportStudents()中增强清洗var cleanValue worksheet.Cells[row, col].Value?.ToString() ?.Replace(\n, ).Replace(\r, ).Replace(\t, ) ?.Normalize(NormalizationForm.FormC) // Unicode标准化 ?.Trim();4.4 现象管理员删除学生后教师账号仍能看到该学生缓存未刷新原因DataGridView绑定BindingSource但删除操作后未调用bindingSource.ResetBindings(false)界面未触发重绘。解决在删除按钮事件末尾添加_studentService.DeleteStudent(selectedID); bindingSource.RemoveCurrent(); // 移除当前行 bindingSource.ResetBindings(false); // 强制刷新 MessageBox.Show(删除成功);4.5 现象导出Excel时提示“访问被拒绝”但文件明明存在原因目标路径如C:\Reports\被Windows Defender或组策略锁定或Excel文件正被其他程序如Excel预览窗格占用。解决导出前检查路径可写性并用随机文件名避免冲突string folder Path.Combine(Application.StartupPath, Exports); if (!Directory.Exists(folder)) Directory.CreateDirectory(folder); string fileName $Students_{DateTime.Now:yyyyMMdd_HHmmss}.xlsx; string fullPath Path.Combine(folder, fileName); // ... 写入文件逻辑5. 进阶技巧给系统加“后悔药”——操作日志与一键还原5.1 记录关键操作日志不只是谁干了什么还要知道干成了没系统在StudentMgmtSystem.Common.LogHelper中实现了两级日志INFO级记录成功操作如[2023-10-05 14:22:31] ADMIN 删除学生 S2023005 成功ERROR级记录失败及堆栈如[2023-10-05 14:23:02] ERROR 在 StudentService.AddStudent 中学号 S2023005 已存在。日志文件按天分割存于Logs\2023-10-05.log每日凌晨自动归档。关键在于每条日志都带操作人ID和时间戳毫秒级精度方便事后审计。例如DeleteStudent()方法中public bool DeleteStudent(int studentID) { try { // ... 执行删除SQL LogHelper.Info($USER{CurrentSession.UserID} 删除学生 {studentNo} 成功); return true; } catch (Exception ex) { LogHelper.Error($在 DeleteStudent({studentID}) 中, ex); return false; } }5.2 一键备份与还原用SQL Server原生命令保命系统在Tools菜单下提供“数据库备份”和“从备份还原”功能不依赖第三方工具直接调用sqlcmd// 备份生成.bak文件 string backupPath Path.Combine(Application.StartupPath, Backups, $StudentDB_{DateTime.Now:yyyyMMdd_HHmmss}.bak); string backupCmd $sqlcmd -S (localdb)\MSSQLLocalDB -Q BACKUP DATABASE StudentDB TO DISK{backupPath} WITH FORMAT; // 还原警告用户将覆盖当前库 string restoreCmd $sqlcmd -S (localdb)\MSSQLLocalDB -Q RESTORE DATABASE StudentDB FROM DISK{selectedBackupFile} WITH REPLACE;参数说明-S指定LocalDB实例名必须与连接字符串一致WITH FORMAT确保备份文件干净WITH REPLACE跳过还原前确认备份路径硬编码在Application.StartupPath下避免权限问题。5.3 权限动态开关教师也能临时获得导出权系统默认教师不能导出Excel但管理员可在UserManagementForm中勾选“允许导出”复选框该设置存入Users表的ExportPermission字段bit类型。StudentBasicUC在Load时检查if (CurrentSession.Role 0) // 教师 { bool canExport _userService.GetUserExportPermission(CurrentSession.UserID); btnExportExcel.Enabled canExport; btnExportExcel.Visible canExport; }这样既满足教学场景的灵活授权又避免硬编码权限逻辑。5.4 安装包制作Inno Setup脚本的关键三行项目附带SetupScript.iss用Inno Setup 6.2编译安装包。核心配置只有三行真正影响部署成败[Files] Source: StudentMgmtSystem.UI\bin\Release\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs Source: SqlLocalDB.msi; DestDir: {tmp}; Flags: deleteafterinstall Source: StudentDB.bak; DestDir: {app}; Flags: ignoreversion [Run] Filename: {tmp}\SqlLocalDB.msi; Parameters: /quiet /norestart; StatusMsg: 正在安装SQL Server LocalDB...; Flags: waituntilterminated skipifdoesntexist [Code] procedure CurStepChanged(CurStep: TSetupStep); begin if CurStep ssPostInstall then begin ExecAsOriginalUser(cmd, /c sqlcmd -S (localdb)\MSSQLLocalDB -i ExpandConstant({app}) \InitDB.sql, , SW_HIDE, ewWaitUntilTerminated, ResultCode); end; end;解释第一行递归复制所有Release文件createallsubdirs确保Logs\、Exports\目录自动创建第二行静默安装LocalDBdeleteafterinstall避免残留第三行CurStepChanged在安装完成后执行InitDB.sql含CREATE DATABASE和CREATE TABLE语句确保数据库结构与代码完全匹配。从那以后我每次交付C#桌面项目都强制走一遍这四步① 用Process Monitor抓取exe缺失的DLL② 在纯净Win10虚拟机中测试安装包③ 用SQL Server Profiler验证所有查询是否参数化④ 让同事用教师账号全流程操作并看日志。少走一步客户机房里就多一个黑匣子。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

最长回文子串全解析:从动态规划到Manacher的进阶之路

最长回文子串全解析:从动态规划到Manacher的进阶之路

1. 从一道高频面试题说起最长回文子串,几乎每个刷过LeetCode的人都见过它,第5题,难度中等。但你要是真去统计一下,这道题在面试里出现的频率,绝对能排进字符串类题目的前三。我见过不少候选人,能把动态规划…

2026/10/13 3:33:52 阅读更多 →
HpSocket HTTP客户端实战:连接池、流式解析与生产避坑指南

HpSocket HTTP客户端实战:连接池、流式解析与生产避坑指南

1. 为什么是HpSocket而不是其他网络库?——从一个真实HTTP服务对接场景说起去年在做某跨平台图像处理Demo的后台通信模块时,我遇到一个典型需求:需要在Windows桌面端(C)稳定、低延迟地与内网部署的轻量级HTTP API服务交…

2026/10/13 3:33:52 阅读更多 →
解决Java groupingBy分组乱序:LinkedHashMap与TreeMap用法详解

解决Java groupingBy分组乱序:LinkedHashMap与TreeMap用法详解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 3:33:52 阅读更多 →

最新新闻

考研复试机器学习面试:高频考点与一周实操准备指南

考研复试机器学习面试:高频考点与一周实操准备指南

1. 复试现场那道机器学习题,到底在考什么考研复试的面试环节,计算机方向的学生最怕被问到机器学习。怕的原因很实在:初试不考,本科课程可能只讲过一点皮毛,真到面试现场,导师随口一句“过拟合怎么处理”就能…

2026/10/13 10:10:30 阅读更多 →
DeepSeek R1 七种获取路径全解析:从在线平台到本地部署与API调用

DeepSeek R1 七种获取路径全解析:从在线平台到本地部署与API调用

简介:这份PDF文档系统梳理了DeepSeek R1的七大获取路径与多元应用场景,面向开发者、数据科学家、设计师及科研人员等希望借助先进自然语言处理能力提升生产力的个人与团队。内容涵盖官网与APP、硅基流动、秘塔搜索、Cursor、Groq、国家超算中心及本地部署…

2026/10/13 10:10:30 阅读更多 →
HarmonyOS ArkUI 图标按钮无障碍:从“只念按钮”到完整页面读屏检查【鸿蒙心迹】

HarmonyOS ArkUI 图标按钮无障碍:从“只念按钮”到完整页面读屏检查【鸿蒙心迹】

你是不是也在想——“鸿蒙这么火,我能不能学会?” 答案是:当然可以! 这个专栏专为零基础小白设计,不需要编程基础,也不需要懂原理、背术语。我们会用最通俗易懂的语言、最贴近生活的案例,手把手…

2026/10/13 10:10:30 阅读更多 →
Agent接入业务系统的关键:上下文组织与权限控制实战

Agent接入业务系统的关键:上下文组织与权限控制实战

把 Agent 从调试终端里搬出来、真正跑进业务流程的那一刻,你会发现最需要认真对待的其实不是模型本身,而是两件事:上下文怎么组织,权限怎么控制。这两个问题处理不好,Demo 阶段表现再抢眼,到了生产环境也会…

2026/10/13 10:10:30 阅读更多 →
TyHGB复合指标在CHARLS健康评估中的应用与实现

TyHGB复合指标在CHARLS健康评估中的应用与实现

1. 项目背景与核心价值TyHGB这个复合指标在CHARLS领域的应用确实是一片尚未开发的蓝海。作为长期关注健康指标研究的从业者,我注意到传统TyG指数(甘油三酯葡萄糖指数)虽然被广泛用于评估胰岛素抵抗,但在老年人群中的应用存在明显局…

2026/10/13 10:10:30 阅读更多 →
T3 Stack全栈实践:tRPC与Prisma打通端到端类型安全

T3 Stack全栈实践:tRPC与Prisma打通端到端类型安全

最近在折腾全栈项目的时候,我把研究重点放在了 t3code 这个代号下的整套技术组合上。如果你也关注过 Next.js 生态,T3 Stack 这个名字多半不陌生,它把 Next.js、TypeScript、tRPC、Prisma、Tailwind CSS、NextAuth 这六样东西打包成一套开箱即…

2026/10/13 10:09:29 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →