Win10下C#免注册调用大漠插件:5步实现自动化开发
1. 项目概述为什么Win10下免注册调用大漠插件是个技术活如果你在Windows 10环境下用C#搞过自动化尤其是游戏脚本、办公自动化或者模拟操作这类需要精准控制鼠标键盘、识别图像文字的活儿那你大概率听说过“大漠插件”。这玩意儿在圈内名声很响功能强大但官方提供的调用方式——注册COM组件regsvr32 dm.dll——在Win10上简直就是个“坑王”。权限问题、系统文件保护、杀毒软件误报随便一个都能让你折腾半天。更别提在一些需要分发的场景比如你写了个工具给同事用总不能要求每个人都去以管理员身份运行命令行吧所以“免注册调用”就成了刚需。我最近在重构一个旧的桌面自动化项目目标环境锁定Win10 22H2核心依赖就是大漠插件3.1233版本。经过几轮踩坑和调试终于把免注册调用的流程跑通了。这篇文章我就把这套经过实战验证的5个关键步骤连同过程中遇到的“坑”和避坑方法完整地分享出来。无论你是C#新手想入门自动化还是老鸟在寻找更优雅的集成方案这篇指南都能让你少走弯路快速在Win10上把大漠插件用起来。2. 核心思路与方案选型为什么选择COM免注册在深入步骤之前我们必须搞清楚“免注册调用”到底是什么意思以及为什么在C#和Win10的组合下这个方案是优选。2.1 传统注册调用的痛点传统方式下我们需要将大漠插件的dm.dll一个COM组件注册到系统的注册表中。这个过程通常需要管理员权限。在Win10上这带来了几个显著问题权限提升要求任何调用该插件的程序其启动或安装过程都可能需要请求管理员权限破坏了用户体验对于绿色软件分发极其不友好。部署复杂你需要写安装脚本或者指导用户手动注册增加了部署成本和出错概率。系统污染与冲突将DLL注册到系统全局环境可能与其他软件或不同版本的大漠插件产生冲突。卸载时如果清理不干净还会留下垃圾注册表项。安全软件拦截很多安全软件会对regsvr32行为进行监控和拦截尤其是大漠插件这类常用于自动化脚本的组件容易被误判为风险。2.2 COM免注册激活的原理与优势COM免注册激活也称为“Reg-Free COM”其核心思想是将COM组件的注册信息从系统全局的注册表转移到应用程序本地的配置文件中。具体来说就是创建一个清单Manifest文件在其中精确描述COM组件的CLSID、ProgID、线程模型、DLL路径等信息。当应用程序运行时COM运行时库会优先查找并加载本地清单中的信息来激活组件。对于我们的场景优势非常明显零权限要求应用程序在普通用户权限下即可运行无需管理员身份。绿色部署只需要将dm.dll和清单文件与你的exe放在一起或特定子目录复制即用。环境隔离组件信息局限于你的应用目录不会影响系统和其他软件完美解决多版本共存问题。提升兼容性避开了系统层面对注册表操作的诸多限制和监控。2.3 C#实现免注册调用的关键Registration-Free COM在C#中我们主要通过两种方式实现通过清单文件.manifest这是最标准、兼容性最好的方式。我们需要为应用程序创建一个清单文件并在其中嵌入COM组件的注册信息。通过CoCreateInstance与手动加载这是一种更底层的编程方式通过Windows API直接从指定路径加载DLL并创建COM对象。这种方式更灵活但代码稍复杂。为了兼顾可靠性、易维护性和通用性本指南将重点介绍通过清单文件这一标准方案。这也是微软官方推荐的Reg-Free COM实践方式。3. 实操前的关键准备获取与理解大漠插件工欲善其事必先利其器。在开始编写代码之前我们必须准备好正确的“原料”。3.1 获取官方插件与类型库首先你需要拥有大漠插件3.1233版本的官方文件。通常这包含以下几个关键文件dm.dll: 核心的COM组件动态链接库。RegDll.dll: 官方提供的用于注册/卸载的辅助DLL在免注册方案中我们基本用不上它。dm.txt/ 接口说明文档了解插件提供的所有接口和方法。重要提示务必从可信渠道获取插件不同版本如免费版、VIP版的dm.dll可能具有不同的CLSID和接口定义直接替换可能导致失败。3.2 生成C#可用的类型库接口文件dm.dll是COM组件C#不能直接引用。我们需要将其中的接口定义转换为C#能理解的Interop程序集。有两种主流方法方法一使用Visual Studio的“添加引用”在Visual Studio中右键点击你的C#项目 - “添加” - “COM引用”。在列表中找到“dm”相关项如果已注册或点击“浏览”找到你的dm.dll。勾选并确定VS会自动生成一个名为类似Interop.dm的引用并在输出目录生成Interop.dm.dll。方法二使用.NET Framework SDK工具tlbimp.exe推荐更清晰打开开发者命令提示符执行以下命令tlbimp.exe dm.dll /out:Interop.dm.dll /namespace:DmInterop这条命令从dm.dll中导出类型库并生成一个名为Interop.dm.dll的程序集其中包含的命名空间为DmInterop。将这个生成的DLL文件添加到你的项目引用中。实操心得我强烈推荐方法二。原因有三第一它不依赖于系统是否已注册该COM组件第二你可以控制输出的命名空间避免与可能存在的其他引用冲突第三生成的文件是独立的便于在团队和不同机器间共享确保开发环境一致。将生成的Interop.dm.dll放在项目下的Libs文件夹并添加引用是一个好习惯。3.3 定位核心的CLSID和ProgID这是免注册清单配置的灵魂。CLSID是COM组件的全球唯一标识符。你需要找到大漠插件对象的CLSID。有几种方式查看官方文档部分版本文档会直接给出。使用OleView.exe工具这是一个Windows SDK工具可以查看已注册COM组件的信息。如果你在测试机上临时注册过dm.dll可以用它查看。反查生成的Interop程序集用ildasm.exe工具打开Interop.dm.dll查找CoClass特性或者更简单的方法——查看你通过方法一添加引用后VS自动生成的Interop.dm程序集中的类定义。通常主类的Guid特性值就是CLSID。以3.1233版本为例其大漠对象的ProgID通常是dm.dmsoft而CLSID可能类似于{B138F8A7-...}请注意这是一个示例格式实际值务必以你手中的文件为准。记下这个CLSID后续配置清单文件需要用到。4. 五个关键步骤实现免注册调用准备工作就绪现在进入核心的五个步骤。请严格按照顺序操作。4.1 第一步项目配置与基础引用创建或打开C#项目建议使用.NET Framework 4.6.1或更高版本的控制台应用或WinForms/WPF项目。.NET Core/.NET 5 理论上也支持但涉及COM互操作时配置可能更复杂本文以成熟的.NET Framework为例。引用Interop程序集将上一步生成的Interop.dm.dll添加到项目引用。设置平台目标由于dm.dll很可能是32位x86的为了兼容性建议将项目的“平台目标”设置为x86。在项目属性 - “生成” - “平台目标”中进行设置。如果你的插件是64位的则对应设置为x64。混合“Any CPU”在调用原生DLL时容易出错建议明确指定。4.2 第二步编写应用程序清单文件app.manifest清单文件是告诉系统“我这个程序要用哪些免注册COM组件”的配置文件。在Visual Studio中右键项目 - “添加” - “新建项”选择“应用程序清单文件”名称通常为app.manifest。如果已有例如用于UAC设置的清单则直接编辑它。在生成的清单文件中找到assembly节点在其中添加dependency和file节点来描述我们的COM组件。以下是关键配置示例?xml version1.0 encodingUTF-8 standaloneyes? assembly xmlnsurn:schemas-microsoft-com:asm.v1 manifestVersion1.0 !-- 其他可能的配置如信任信息、兼容性设置等 -- dependency dependentAssembly assemblyIdentity typewin32 nameMicrosoft.Windows.Common-Controls version6.0.0.0 processorArchitecture* publicKeyToken6595b64144ccf1df language* / /dependentAssembly /dependency !-- 关键声明免注册COM组件 -- file namedm.dll comClass clsid{这里填入你的大漠对象CLSID例如 {B138F8A7-...}} threadingModelApartment progiddm.dmsoft / !-- 如果插件有类型库可以一并声明但非必须 -- !-- typelib tlbid{...} version1.0 helpdir/ -- /file /assembly配置解析与避坑点file namedm.dll这里的name属性必须与最终放置在exe同级目录下的DLL文件名完全一致包括大小写。建议直接复制你的DLL文件名。clsid填入你从dm.dll中获取的真实CLSID格式必须正确包含花括号。threadingModelApartment大漠插件通常使用单元线程模型Apartment这是最兼容的模式。除非你明确知道它是自由线程Free否则不要修改。progid填入对应的ProgID通常是dm.dmsoft。重要清单文件中的CLSID和ProgID必须与DLL文件内部定义绝对一致一个字符都不能错否则激活失败。4.3 第三步部署DLL与清单文件编译生成你的应用程序例如MyAutomationTool.exe。在输出目录如bin\x86\Debug你需要确保以下文件结构MyAutomationTool.exe MyAutomationTool.exe.manifest (或者嵌入清单) dm.dll (大漠插件核心文件) Interop.dm.dll (可选如果你将Interop程序集设置为“复制到输出目录”)关键操作将dm.dll文件手动复制到你的exe所在目录。确保清单文件生效。有两种方式嵌入清单在项目属性 - “应用程序” - “资源” - “清单”中选择你刚才创建的app.manifest文件。这样清单信息会编译进exe内部。这是最推荐的方式部署时只需一个exe和一个dm.dll。外部清单将清单文件重命名为MyAutomationTool.exe.manifest与exe同名并放在同一目录。系统会优先读取此外部清单。注意事项dm.dll绝对不能放在系统目录如System32或通过Regsvr32注册。它的唯一合法位置就是你的应用程序目录或者清单文件中通过codeBase指定的相对路径。4.4 第四步C#代码中实例化与调用现在你可以在C#代码中像使用普通COM对象一样使用大漠插件了但无需事先注册。using System; using DmInterop; // 这是你通过tlbimp生成的命名空间 namespace MyAutomationTool { class Program { static void Main(string[] args) { // 关键直接通过ProgID或CLSID创建实例 // 方法A使用Type.GetTypeFromProgID (更常见) Type dmType Type.GetTypeFromProgID(dm.dmsoft); if (dmType null) { Console.WriteLine(错误无法获取大漠插件类型。请检查清单文件和dm.dll。); return; } object comObj Activator.CreateInstance(dmType); dmsoft dm (dmsoft)comObj; // 转换为接口 // 方法B使用new关键字依赖于Interop程序集提供的RCW // dmsoft dm new dmsoft(); // 这种方式有时在免注册下可能失败优先使用方法A // 验证插件是否创建成功 string ver dm.Ver(); Console.WriteLine($大漠插件版本{ver}); // 进行你的自动化操作例如 // dm.MoveTo(100, 200); // string result dm.Ocr(0, 0, 200, 100, 000000-000000, 1.0); // 释放COM对象重要 if (comObj ! null) { System.Runtime.InteropServices.Marshal.ReleaseComObject(comObj); } // 或者对于方法B创建的dm对象同样需要释放 // System.Runtime.InteropServices.Marshal.FinalReleaseComObject(dm); Console.WriteLine(操作完成。); } } }代码要点使用Type.GetTypeFromProgID配合Activator.CreateInstance是免注册环境下最可靠的实例化方式。它利用清单信息来定位并创建对象。实例化成功后可以将其转换为dmsoft接口具体名称取决于你的Interop程序集然后调用其方法如Ver(),MoveTo(),Ocr()等。务必显式释放COM对象使用Marshal.ReleaseComObject或FinalReleaseComObject。虽然.NET的垃圾回收最终会处理但显式释放可以避免资源泄露和潜在的进程锁定问题在长时间运行或频繁创建对象的程序中尤为重要。4.5 第五步编译、运行与权限测试编译项目确保编译成功无错误。检查输出目录确认exe、dm.dll、以及清单文件如果采用外部方式都存在。以普通用户身份运行关闭Visual Studio直接去输出目录双击MyAutomationTool.exe运行。关键点不要以管理员身份运行这正是我们测试免注册是否成功的目的。观察结果如果程序成功运行并打印出大漠插件的版本号例如“3.1233”那么恭喜你免注册调用成功了5. 深度避坑指南与疑难排查即使步骤正确你也可能会遇到各种问题。下面是我在实战中遇到过的典型“坑”及其解决方案。5.1 常见错误与解决方案速查表错误现象可能原因排查与解决方案System.Runtime.InteropServices.COMException (0x80040154): 检索 COM 类工厂中 CLSID 为 {...} 的组件失败...1. 清单文件未生效或配置错误。2.dm.dll不在正确路径。3. CLSID/ProgID填写错误。4. 平台目标不匹配x86/x64。1. 检查清单文件是否嵌入或外部文件命名正确。用记事本打开清单核对CLSID和ProgID。2. 确认dm.dll在exe同级目录。3. 使用OleView或反编译工具重新确认CLSID。4. 确保项目平台目标与dm.dll的位数一致。System.IO.FileNotFoundException: 无法加载文件或程序集“Interop.dm...”Interop.dm.dll未正确引用或未复制到输出目录。1. 在VS中检查引用是否存在且无警告。2. 在引用属性中将“复制本地”设置为True。程序以管理员身份运行正常普通用户则报错清单配置可能仍有问题或者程序依赖了某些需要管理员权限的资源但大漠本身不应。回归基础检查确保清单文件在普通用户下可读dm.dll文件权限允许普通用户读取。尝试在另一台干净的Win10测试机上部署测试。调用插件方法时崩溃或无响应1. 线程模型不匹配。2. 插件内部初始化失败如驱动、资源问题。3. 代码中未正确处理COM线程套间。1. 确保清单中threadingModelApartment且UI程序如WinForms的主线程是STA线程[STAThread]。2. 尝试先以注册方式运行一次看是否是插件本身环境问题如VC运行库缺失。3. 在非UI线程调用插件时需考虑COM线程封送处理。杀毒软件报警或拦截大漠插件行为被某些安全软件视为风险。将你的exe目录添加到杀毒软件的白名单或信任区。这是无法避免的需要在用户手册中说明。5.2 高级排查工具与技巧使用Process MonitorProcMon这是微软Sysinternals套件中的神器。运行你的程序同时在ProcMon中设置过滤器过滤Process Name是你的exe名Operation包含RegOpenKey、CreateFile、Load Image。观察程序运行时是否在错误的位置寻找dm.dll或尝试访问注册表中的CLSID这能精准定位清单是否生效。检查清单是否被加载使用任务管理器。运行你的程序后在任务管理器“详细信息”选项卡中找到你的进程右键“属性”查看“详细信息”标签页。如果清单嵌入成功这里会显示清单中的一些信息。清单文件语法验证XML格式非常严格。一个多余的空格或错误的标签闭合都可能导致清单被忽略。可以使用在线的XML验证工具检查基本语法。5.3 关于Win10特定问题的处理Windows Defender 控制文件夹访问Win10的这项功能可能会阻止你的程序加载dm.dll。如果遇到问题可以临时关闭该功能测试或通过组策略/安全中心添加排除项。虚拟化技术VBS在一些高安全配置的Win10/11上基于虚拟化的安全功能可能对底层硬件访问有更严格的限制。大漠插件的部分功能如后台图色、键鼠模拟可能受影响。如果基础调用成功但功能异常可以考虑在BIOS中关闭相关虚拟化选项如Intel VT-d/AMD-Vi进行测试但这会降低系统安全性请权衡。6. 进阶优化与部署考量当基础功能跑通后可以考虑以下优化让项目更健壮、更专业。6.1 封装与错误处理不要在每个使用的地方都写一遍实例化和错误处理代码。建议封装一个辅助类public class DmPluginHelper : IDisposable { private dmsoft _dm null; private bool _initialized false; public bool Initialize() { try { Type dmType Type.GetTypeFromProgID(dm.dmsoft); if (dmType null) return false; object obj Activator.CreateInstance(dmType); _dm (dmsoft)obj; string ver _dm.Ver(); _initialized !string.IsNullOrEmpty(ver); return _initialized; } catch (Exception ex) { // 记录日志 System.Diagnostics.Debug.WriteLine($[DM Init Failed] {ex.Message}); return false; } } public dmsoft Instance { get { if (!_initialized) throw new InvalidOperationException(大漠插件未初始化。); return _dm; } } public void Dispose() { if (_dm ! null) { System.Runtime.InteropServices.Marshal.FinalReleaseComObject(_dm); _dm null; _initialized false; } GC.SuppressFinalize(this); } }这样在使用时通过using语句或手动管理生命周期代码更清晰资源管理更安全。6.2 多版本管理与并行部署如果你的系统需要同时运行依赖不同版本大漠插件的多个程序免注册部署是唯一优雅的解决方案。只需确保每个程序的exe目录下放置其对应版本的dm.dll并在各自的清单文件中正确配置该版本的CLSID即可。它们彼此完全隔离互不影响。6.3 部署包制作对于最终分发你可以使用以下任一方式打包绿色压缩包直接将包含exe、dm.dll以及可能需要的Interop.dm.dll和其他依赖库的整个文件夹压缩。用户解压即用。安装程序使用Inno Setup、Advanced Installer等工具制作安装包。在安装过程中只需将这些文件复制到目标目录绝对不要在安装脚本中执行regsvr32。自解压程序创建一个简单的自解压包解压后自动运行主程序。最后再分享一个小技巧在开发调试阶段可以在代码里加一段逻辑如果免注册方式创建对象失败则尝试回退到使用Regsvr32注册的全局对象并给出提示这能帮你快速区分是免注册配置问题还是插件本身或环境问题。但在发布版本中记得移除此回退逻辑坚持纯免注册方案。

相关新闻

从零实现C++字符串类:深入理解内存管理、SSO优化与现代C++实践

从零实现C++字符串类:深入理解内存管理、SSO优化与现代C++实践

1. 项目概述:为什么我们要再造一个“轮子”?在C的世界里,std::string几乎是每个开发者最熟悉的老朋友。从简单的文本拼接、查找替换,到复杂的解析处理,它无处不在。标准库提供的这个字符串类,经过多年迭代&…

2026/10/13 13:49:42 阅读更多 →
Android模拟器Frida逆向环境搭建:版本与架构匹配全攻略

Android模拟器Frida逆向环境搭建:版本与架构匹配全攻略

1. 项目概述:为什么选对frida-server是逆向的基石?如果你刚开始接触Android逆向,或者正准备用Frida在模拟器上大展拳脚,那你很可能已经卡在了第一步:下载了Frida,写好了脚本,却发现怎么都连不上…

2026/10/4 22:12:51 阅读更多 →
C++实现轻量级消息队列:Reactor模式、Channel机制与核心模块设计

C++实现轻量级消息队列:Reactor模式、Channel机制与核心模块设计

1. 项目概述与核心目标 最近在社区里看到不少朋友对消息队列的实现原理感兴趣,尤其是用C来“造轮子”。我自己也一直觉得,光会用RabbitMQ、Kafka这些成熟的中间件还不够,亲手实现一个简化版,才能真正吃透其内部机制。所以&#xf…

2026/10/10 0:32:05 阅读更多 →

最新新闻

用litellm搭建LLM统一网关:路由、密钥与成本控制实战

用litellm搭建LLM统一网关:路由、密钥与成本控制实战

先交代一下背景:我们团队维护的AI应用已经接入了五六个不同厂商的大模型,从闭源旗舰到开源自主部署都有。一开始还能靠每个厂商的SDK挨个对接,但等业务开始并发增长,要处理不同格式的请求体、不同的鉴权方式、不同的超时行为&…

2026/10/13 13:49:34 阅读更多 →
知识工作流水线化:用本地插件把重复文本处理变成自动化流程

知识工作流水线化:用本地插件把重复文本处理变成自动化流程

我第一次意识到知识工作可以被当成一条流水线来改造,是在某天晚上连续复制了三篇不同来源的长文之后。标题、超链接、空行、隐藏格式混成一团,粘贴到笔记里还要手动清理,光是整理素材就花了四十分钟,而真正该做的思考还没开始。后…

2026/10/13 13:49:34 阅读更多 →
计算机组成实验:从Logisim单周期CPU到Verilog五级流水线完整实践

计算机组成实验:从Logisim单周期CPU到Verilog五级流水线完整实践

简介:北航计算机组成P0-P6资源包,面向计算机组成与体系结构课程学习者,覆盖从logisim数字电路到单周期CPU、再到verilog流水线CPU及MIPS汇编的完整实验链。内容包含斐波那契数列电路、Moore与Mealy型有限状态机、单周期CPU设计,以…

2026/10/13 13:49:34 阅读更多 →
知识工作插件矩阵:从采集到输出的一体化配置方案

知识工作插件矩阵:从采集到输出的一体化配置方案

我最近把自己电脑上那堆跟知识工作相关的插件认认真真收拾了一遍,整合成了一个仓库,名字就叫 knowledge-work-plugins。说白了,它不是一个一键安装的插件,而是一整套插件管理方案:所有与采集、管理、输出知识相关的浏览…

2026/10/13 13:49:34 阅读更多 →
基于FPGA的电子琴设计:从DDS波形生成到PWM发声与排错

基于FPGA的电子琴设计:从DDS波形生成到PWM发声与排错

简介:基于FPGA的电子琴设计资源,以Verilog硬件描述语言为核心,面向数字电路设计学习者与电子音乐制作爱好者,展示如何利用Altera FPGA实现音符生成、频率合成与音效处理等完整功能。压缩包共69个文件,包含Quartus工程文…

2026/10/13 13:49:34 阅读更多 →
AI辅助开发:不写代码的交付,需求与边界才是关键

AI辅助开发:不写代码的交付,需求与边界才是关键

有句话憋了很久:AI 辅助开发真正费神的,从来不是怎么让 AI 写出代码,而是怎么在一堆“能跑”的代码里,把需求、边界和验收标准一针一针地缝清楚。最近我用 AI 端到端交付了一个项目,从需求访谈、数据表设计、接口生成、…

2026/10/13 13:48: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 阅读更多 →