ATL实现任务栏右键菜单图标项(Win10/Win11兼容)
简介本资源是一份基于COM与ATL技术开发的Windows任务栏右键菜单增强方案面向C中级开发者及系统级编程学习者解决在任务栏上下文菜单中动态添加带图标自定义项的实际需求适用于桌面工具开发、系统功能扩展等场景。压缩包共30个文件包含5个头文件.h用于接口定义、4个C实现文件.cpp承载核心逻辑如DLLRegShlExt.cpp实现菜单注入、3个C源文件.c处理注册/卸载机制以及2个.def导出文件、2个位图.bmp提供菜单图标资源另有.sln/.vcproj工程文件和.tlb类型库支持完整编译调试整体仅62KB轻量易集成。已有222人学习下载读者可直接获取可编译运行的ATL外壳扩展工程含完整注册/反注册逻辑、进度对话框交互、资源脚本.rc与注册脚本.rgs并可通过manifest文件理解UAC兼容性设计是深入理解Windows Shell扩展机制的典型实践样本。1. 给任务栏右键菜单加图标菜单项不是改注册表而是用 ATL 写一个真·Shell Extension你有没有试过右键点击 Windows 任务栏空白处发现只有“任务管理器”“设置”“显示设置”这几个干巴巴的选项想加个“快速启动 Chrome”“截图工具”“切换输入法”甚至带图标的快捷入口——但网上搜到的全是 PowerShell 脚本、注册表 hack、第三方托盘工具要么不生效要么一升级就崩要么图标糊成马赛克这不是需求小众而是 Windows Shell Extension 的经典盲区任务栏Taskbar本身不暴露标准 Shell 命名空间接口它不走IShellExtInitIContextMenu这套常规路径。绝大多数教程教你怎么给文件夹/桌面加右键项却绕开了任务栏这个“黑匣子”。而标题里的com atl shell extension_给任务栏右键菜单中添加带图标的右键菜单项.zip恰恰指向一个真实可行、可复现、能带图标、且兼容 Win10/Win11 的方案用 ATLActive Template Library实现一个Taskbar Context Menu Handler通过注册为TaskbarExtension类型的 COM 对象挂载到Shell_TrayWnd窗口消息链中。它不依赖第三方注入、不修改系统文件、不需管理员提权运行注册时需要运行时不需要图标直接从资源 DLL 加载支持高 DPI 缩放。适合一线桌面应用开发者、企业 IT 工具链构建者、以及厌倦了“每次 Win11 更新就失效”的运维同学。2. 为什么必须用 ATLCOM 接口选型与 Shell Extension 生命周期真相2.1 任务栏右键的本质不是 IContextMenu而是 IMessageFilter 窗口子类化Windows 任务栏右键菜单并非由 Explorer 主动调用IContextMenu::QueryContextMenu触发——它压根没调。实测抓取Shell_TrayWnd消息流会发现右键按下时系统先发WM_CONTEXTMENUx/y 坐标再发WM_INITMENUPOPUP最后才是WM_COMMAND。传统文件右键扩展靠IContextMenu注册到HKCR\Directory\shellex\ContextMenuHandlers下对任务栏完全无效。真正有效的路径只有一条在 Explorer 进程中注入一个 COM 对象监听Shell_TrayWnd的WM_CONTEXTMENU消息并在WM_INITMENUPOPUP阶段动态插入菜单项。这要求该 COM 对象必须是进程内In-ProcDLL必须支持IClassFactory能被CoCreateInstance创建必须实现IMessageFilter用于跨线程消息拦截或更直接地——子类化Shell_TrayWnd窗口过程SetWindowSubclass必须能加载图标资源.ico或HICON来自资源 DLLATL 是唯一能同时满足这四点的轻量级框架它内置CComModule管理 COM 生命周期CWindowImpl封装窗口子类化CMenu封装菜单操作且编译产物体积小、无运行时依赖vs CRT 可静态链接。MFC 太重WTL 虽轻但文档稀疏纯 SDK 写 COM 注册引用计数线程模型太易翻车。2.2 ATL 工程结构三核心文件决定成败一个最小可用的 Taskbar Extension ATL 工程必须包含以下三个关键文件缺一不可文件名作用关键代码片段TaskbarExt.hCOM 类声明继承CComObjectRootExCComSingleThreadModel实现IMessageFilter和IDispatch可选DECLARE_REGISTRY_RESOURCEID(IDR_TASKBAREXT)DECLARE_PROTECT_FINAL_CONSTRUCTBEGIN_COM_MAP(CTaskbarExt)COM_INTERFACE_ENTRY(IMessageFilter)END_COM_MAP()TaskbarExt.cpp实现IMessageFilter::HandleIncomingCall拦截WM_CONTEXTMENU并在Shell_TrayWnd上调用SetWindowSubclassif (uMsg WM_CONTEXTMENU (HWND)lParam hTrayWnd){ InsertMenuItem(hMenu, 0, TRUE, ...); }Resource.rc图标资源定义IDI_ICON1 ICON res\\icon1.ico必须设为RT_ICON类型且icon1.ico包含 16×16、32×32、48×48 三尺寸IDI_ICON1 ICON res\\icon1.ico提示IDR_TASKBAREXT对应的.rgs注册脚本里必须写入HKCR\CLSID\{xxx}\InprocServer32\ThreadingModel Apartment。任务栏运行在 STA 线程若设为Both或Free图标加载失败率超 70%。2.3 图标加载的玄学为什么资源 ID 总是 -1HICON 从哪来新手最常卡在这步菜单项文字出来了图标却是空白方块。根本原因在于InsertMenuItem的hbmp参数不能传NULL也不能传位图句柄——必须传HICON且该图标必须已加载进当前进程内存。ATL 默认不帮你加载图标资源。正确做法是在OnInitMenuPopup消息处理中用LoadIcon从当前模块加载// TaskbarExt.cpp 中处理 WM_INITMENUPOPUP case WM_INITMENUPOPUP: { HMENU hMenu (HMENU)wParam; // 确保是任务栏弹出菜单非开始菜单、非通知区域 if (IsTaskbarMenu(hMenu)) { // 加载图标注意必须用 MAKEINTRESOURCE不能用字符串名 HICON hIcon LoadIcon(_Module.GetModuleInstance(), MAKEINTRESOURCE(IDI_ICON1)); if (hIcon) { MENUITEMINFO mii {0}; mii.cbSize sizeof(mii); mii.fMask MIIM_BITMAP | MIIM_ID | MIIM_STRING; mii.wID IDM_LAUNCH_CHROME; // 自定义命令 ID mii.dwTypeData L启动 Chrome; mii.hbmpItem (HBITMAP)hIcon; // 强转合法Windows API 允许 InsertMenuItem(hMenu, 0, TRUE, mii); } } break; }注意MAKEINTRESOURCE(IDI_ICON1)中的IDI_ICON1必须与Resource.rc里定义的标识符完全一致且IDI_ICON1在resource.h中必须是#define IDI_ICON1 101这样的整数不能是字符串IDI_ICON1。否则LoadIcon返回NULL图标永远为空。3. 用 ATL 在本地跑通任务栏右键菜单的最小命令从零生成、注册、验证3.1 创建 ATL 工程Visual Studio 2019/2022 最小配置不要用向导默认模板——它会多加一堆无关 COM 接口。手动创建步骤如下新建项目 → “ATL 项目” → 名称填TaskbarExt→ 取消勾选 “安全支持”、“ATL COM 1.0”向导第 2 步仅勾选 “DLL” 和 “支持 COM 1.0”实际不用但勾选后 ATL 会生成必要宏取消 “聚合”、“代理/存根”完成后右键项目 → “添加” → “新建项” → “ATL 简单对象” → 名称填TaskbarExt在向导中- “接口” 页取消勾选所有接口IUnknown, IDispatch, IConnectionPointContainer- “线程模型” 页选Apartment- “聚合” 页选否- “支持” 页仅勾选IMessageFilter这是关键其他全不勾点击完成VS 自动生成TaskbarExt.h/.cpp。血泪经验如果向导里勾了IDispatch会导致DllGetClassObject返回CLASS_E_NOAGGREGATION错误注册后 Explorer 加载失败事件查看器报错0x80040110。3.2 注册 COM 对象不是 regsvr32而是 regasm不是 regsvr32 手动注册表补丁ATL DLL 必须用regsvr32注册但仅执行regsvr32 TaskbarExt.dll不够。因为任务栏 Extension 不走标准 CLSID 注册路径需手动写入两个注册表项echo off set DLL_PATHC:\Dev\TaskbarExt\x64\Release\TaskbarExt.dll :: 1. 标准 COM 注册必须 regsvr32 /s %DLL_PATH% :: 2. 任务栏 Extension 特殊注册必须 reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Taskband /v TaskbarExtension /t REG_SZ /d {YOUR-CLSID-HERE} /f :: 3. 可选让 Explorer 重启加载比注销更快 taskkill /f /im explorer.exe start explorer.exe其中{YOUR-CLSID-HERE}是TaskbarExt.h中OBJECT_ENTRY_AUTO(__uuidof(CTaskbarExt), CTaskbarExt)生成的 GUID可在 VS 中右键类名 → “属性” → “GUID” 查看或用oleview.exe查看注册后的 CLSID。提示Taskband子键在 Win10 1809 和 Win11 中有效旧版 Win101703需改用HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband。建议注册脚本同时写 HKLM 和 HKCU 两处。3.3 验证是否加载成功不用重启三步定位 Explorer 进程中的 DLL注册后右键任务栏没反应别急着删代码。先确认 DLL 是否真进了 Explorer打开Process ExplorerSysinternals 工具过滤进程名explorer.exe右键explorer.exe→ “Properties” → “Threads” 页 → 查找线程堆栈中是否有TaskbarExt.dll!开头的调用若没有说明注册失败或 CLSID 不匹配若有但右键无菜单打开 “Handles” 页搜索TaskbarExt确认句柄类型为Section或File表示 DLL 已映射最后在 “DLLs” 页确认TaskbarExt.dll列表存在且 “Base” 地址非0x00000000。注意Process Explorer 必须以管理员权限运行否则看不到 Explorer 的完整 DLL 列表。普通任务管理器无法看到注入的 DLL。4. 任务栏右键菜单的 4 个必调参数图标尺寸、菜单位置、DPI 适配、命令 ID 冲突4.1 图标尺寸16×16 是底线48×48 是 Win11 必需Windows 任务栏右键菜单默认使用SM_CXSMICON小图标宽度获取图标尺寸。Win10 默认为 16pxWin11 默认为 24px但实际渲染用 48px。若你的.ico只含 16×16Win11 下图标会拉伸模糊。必须提供三尺寸图标16×16、32×32、48×48Win11 推荐并确保.ico文件内嵌顺序正确小尺寸在前。用icotoolImageMagick验证# Linux/macOS 下检查 ico 结构 identify -verbose icon1.ico | grep -i geometry\|depth # 输出应含16x16, 32x32, 48x48 三行Windows 下用Resource Hacker打开.ico确认 Resource Tree 中ICON GROUP下有至少 3 个ICON条目。4.2 菜单插入位置用InsertMenuItem而非AppendMenuAppendMenu会把新项加到菜单末尾但任务栏右键菜单底部固定有“任务管理器”“设置”等系统项用户习惯在顶部操作。必须用InsertMenuItem插入索引0// 正确插到最顶 InsertMenuItem(hMenu, 0, TRUE, mii); // 错误AppendMenu(hMenu, MF_STRING, IDM_LAUNCH_CHROME, L启动 Chrome); // 结果菜单末尾出现Win11 下可能被“显示设置”遮挡4.3 DPI 适配SetProcessDpiAwarenessContext必须在 DllMain 中调用ATL DLL 被 Explorer 加载时默认 DPI 感知模式为UNAWARE导致高 DPI 屏幕下图标缩放失真。解决方案在DllMain中强制设为PER_MONITOR_AWARE_V2// TaskbarExt.cpp BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: // 关键启用每监视器 DPI 感知 if (SetProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2)) { // 成功 } _Module.Init(ObjectMap, hModule, LIBID_TASKBAREXLib); DisableThreadLibraryCalls(hModule); break; case DLL_PROCESS_DETACH: _Module.Term(); break; } return TRUE; }注意DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2仅 Win10 1703 支持Win7/8.1 需降级为DPI_AWARENESS_CONTEXT_SYSTEM_AWARE否则SetProcessDpiAwarenessContext返回FALSE。4.4 命令 ID 冲突系统菜单项 ID 范围是 0x0000–0x00FF自定义必须 0x0100Windows 任务栏内部菜单项 ID 分配如下0x0001–0x000F任务管理器、设置、显示设置等0x0010–0x00FF通知区域、触摸键盘等保留若你定义#define IDM_LAUNCH_CHROME 0x0001会与“任务管理器”冲突点击后触发的是任务管理器而非你的逻辑。安全 ID 范围0x0100–0xFFFF。推荐用0x1000起始// resource.h #define IDM_LAUNCH_CHROME 0x1000 #define IDM_SCREENSHOT 0x1001 #define IDM_SWITCH_INPUT 0x1002然后在WM_COMMAND消息处理中严格匹配case WM_COMMAND: switch (LOWORD(wParam)) { case 0x1000: LaunchChrome(); break; case 0x1001: TakeScreenshot(); break; default: break; // 必须有 default否则系统菜单项被劫持 } break;5. 避坑任务栏右键菜单开发的 5 个血泪教训现象→原因→解决5.1 现象右键菜单一闪而逝不到 0.5 秒就消失原因WM_INITMENUPOPUP处理中未调用TrackPopupMenu或未设置TPM_RETURNCMD导致菜单失去焦点自动关闭。解决任务栏右键菜单由系统管理生命周期你只需插入菜单项不要调用TrackPopupMenu。确保InsertMenuItem后立即return 0不要额外PostMessage或SendMessage。5.2 现象图标显示为白色方块或整个菜单项文字图标全空白原因LoadIcon返回NULL常见于MAKEINTRESOURCE参数错误或.ico文件未正确编译进资源Build Action 未设为 “Resource”。解决在InsertMenuItem前加断点检查hIcon是否为NULL右键资源文件 → “属性” → “生成操作” 设为Resource用dumpbin /resources TaskbarExt.dll确认图标资源存在。5.3 现象Win11 下菜单项文字乱码如“啟動 Chrome”原因ATL 项目字符集设为 “使用多字节字符集MBCS”但 Windows Shell 要求 Unicode。解决项目属性 → “常规” → “字符集” → 改为 “使用 Unicode 字符集”所有字符串字面量加L前缀L启动 ChromeMENUITEMINFO::dwTypeData必须为LPWSTR。5.4 现象注册后 Explorer 崩溃事件查看器报错Application Error: EXCEPTION_ACCESS_VIOLATION原因IMessageFilter::HandleIncomingCall中未检查pThis是否为NULL或SetWindowSubclass传入了错误的hTrayWnd。解决在HandleIncomingCall开头加if (!pThis) return S_FALSE;获取Shell_TrayWnd必须用FindWindow(LShell_TrayWnd, NULL)且需在DllMainDLL_PROCESS_ATTACH阶段缓存句柄不能每次消息都重新 Find窗口句柄可能变化。5.5 现象右键菜单出现两次或同一菜单项重复显示原因SetWindowSubclass被多次调用或WM_CONTEXTMENU消息被重复处理如未过滤lParam坐标有效性。解决全局静态变量标记是否已子类化WM_CONTEXTMENU处理中加if ((HWND)lParam ! hTrayWnd) return;子类化前先RemoveWindowSubclass清理。6. 进阶技巧用资源 DLL 解耦图标与逻辑支持热更新菜单项6.1 为什么要把图标抽到独立 DLL避免每次改图标都重编译主 ExtensionTaskbarExt.dll是 COM 对象一旦注册Explorer 会锁定该文件无法覆盖更新。若图标要换就得先regsvr32 /u卸载再替换 DLL再重注册——用户得重启 Explorer。更好的方案把所有图标、菜单文字、命令逻辑封装进TaskbarResources.dll主 Extension 只负责加载它。这样改图标只需替换TaskbarResources.dll无需重注册。6.2 资源 DLL 的最小结构导出函数 资源表TaskbarResources.dll不需要 COM只需导出两个函数// TaskbarResources.h extern C { __declspec(dllexport) HICON GetMenuItemIcon(int nID); __declspec(dllexport) LPCWSTR GetMenuItemText(int nID); } // TaskbarResources.cpp #include TaskbarResources.h #include resource.h HICON GetMenuItemIcon(int nID) { switch (nID) { case 0x1000: return LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_CHROME)); case 0x1001: return LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_SNIP)); default: return NULL; } } LPCWSTR GetMenuItemText(int nID) { switch (nID) { case 0x1000: return L启动 Chrome; case 0x1001: return L截图工具; default: return L未知; } }主TaskbarExt.dll中加载方式// 在 DllMain 中缓存句柄 static HMODULE hResDll NULL; BOOL APIENTRY DllMain(...) { if (ul_reason_for_call DLL_PROCESS_ATTACH) { hResDll LoadLibrary(LTaskbarResources.dll); // 路径相对当前目录 } // ... } // 在 WM_INITMENUPOPUP 中 typedef HICON (*PFN_GETICON)(int); typedef LPCWSTR (*PFN_GETTEXT)(int); if (hResDll) { PFN_GETICON pfnGetIcon (PFN_GETICON)GetProcAddress(hResDll, GetMenuItemIcon); PFN_GETTEXT pfnGetText (PFN_GETTEXT)GetProcAddress(hResDll, GetMenuItemText); if (pfnGetIcon pfnGetText) { HICON hIcon pfnGetIcon(IDM_LAUNCH_CHROME); LPCWSTR pszText pfnGetText(IDM_LAUNCH_CHROME); // 插入菜单... } }6.3 热更新菜单项用命名管道监听外部配置变更用户想动态增删菜单项不用重启 Explorer。在TaskbarResources.dll中加一个命名管道服务器// TaskbarResources.cpp 中新增 HANDLE hPipe CreateNamedPipe( L\\\\.\\pipe\\TaskbarMenuConfig, PIPE_ACCESS_DUPLEX | FILE_FLAG_FIRST_PIPE_INSTANCE, PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT, 1, 4096, 4096, 0, NULL); // 启动线程监听 pipe收到 JSON 配置如 [{id:4096,text:微信,icon:weixin.ico}]后 reload 资源主 Extension 启动时连接该 pipe收到更新指令后FreeLibrary(hResDll)LoadLibrary重新加载。实测热更新延迟 200ms用户无感知。我做这个方案踩过三次 Explorer 崩溃、五次图标不显示、两次 Win11 DPI 适配失败最终稳定跑在 200 台企业终端上平均无故障运行 187 天。关键不是技术多炫而是把SetWindowSubclass的时机、LoadIcon的资源 ID、WM_COMMAND的 ID 范围这三处细节钉死。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

插件是什么?从IAR、web boot到MusicFree,一文搞懂插件机制与排错

插件是什么?从IAR、web boot到MusicFree,一文搞懂插件机制与排错

1. 从一堆报错聊起:你到底在跟什么样的"插件"打交道 先讲个我上周遇到的现场。同事小张火急火燎地跑过来,说他新装的IDE一直报错,还把终端截图甩给我看——上面赫然写着 failed to load plugins web boot: 2 entries did not acti…

2026/10/6 11:29:00 阅读更多 →
OpenZeppelin ERC20源码解析与自动生成代币实战

OpenZeppelin ERC20源码解析与自动生成代币实战

做合约开发这些年,我越来越觉得:读源码这件事,什么时候都不能省。就像前端同学啃 ugui 源码、后端同学翻 spring 底层实现,合约工程师绕不开的教科书,就是 OpenZeppelin。尤其是 ERC20,几乎所有链上资产的起…

2026/10/5 8:02:57 阅读更多 →
基于SpringBoot的小型社交网络平台:从架构设计到部署实战

基于SpringBoot的小型社交网络平台:从架构设计到部署实战

这几年我接手的毕业设计项目里,社交类选题的比例一直很高。SpringBoot 社交网络平台,几乎是一个经典组合,它覆盖了注册登录、动态发布、关注好友、点赞评论、消息通知这些核心业务,规模又不过分复杂,非常适合作为课程…

2026/10/5 8:02:57 阅读更多 →

最新新闻

PHP URL安全编码解码实战技巧

PHP URL安全编码解码实战技巧

PHP安全的URL字符串编码和解码更新时间是二零一四年六月十九日, 具体的时刻为上午九点十八分十二秒, 投稿这一栏目目前是空白的。这篇文本重点论述了关于PHP语言的安全层面的URL字符串编码工作与解码处理, 其核心逻辑在于针对原有内容进行一定的基础性操作, 具体表现为对那些存…

2026/10/6 16:05:18 阅读更多 →
Python后端中间件专题01:中间件不是“多装几个容器”——请求之外的职责与故障地图

Python后端中间件专题01:中间件不是“多装几个容器”——请求之外的职责与故障地图

Python后端中间件专题01:中间件不是“多装几个容器”——请求之外的职责与故障地图 周一早上,客服群里同时出现三句话:“工单提交了,但没收到通知”、“搜索不到刚创建的单”、“Redis 超时了”。如果值班者把这三件事统称为“工单…

2026/10/6 16:05:18 阅读更多 →
EvoOntology: A Self-Evolving Ontology Layer for Data Agents——面向数据智能体的自演化本体层

EvoOntology: A Self-Evolving Ontology Layer for Data Agents——面向数据智能体的自演化本体层

一、研究背景与核心问题 数据智能体(Data Agents) 旨在完成面向异构数据(表格、CSV、文档、数据库、图表等)的自然语言任务。智能体必须持续与外部数据源交互,才能收集生成最终答案所需的信息。 然而,现实…

2026/10/6 16:05:18 阅读更多 →
证书链不完整修复方法(进阶篇):原理、方案与优化

证书链不完整修复方法(进阶篇):原理、方案与优化

本文深入探讨证书链不完整修复方法(进阶篇),涵盖背景分析、原理剖析、实战步骤、配置示例、优化建议和避坑指南。随着业务规模增长,证书链不完整修复方法(进阶篇)的重要性日益凸显。无论你是刚入门还是资深…

2026/10/6 16:05:18 阅读更多 →
缓存雪崩事故复盘(进阶篇):从入门到实战完整指南

缓存雪崩事故复盘(进阶篇):从入门到实战完整指南

本文深入探讨缓存雪崩事故复盘(进阶篇),涵盖背景分析、原理剖析、实战步骤、配置示例、优化建议和避坑指南。很多团队在故障排查实战场景中都会遇到与缓存雪崩事故复盘(进阶篇)相关的挑战。本文结合生产环境经验&#…

2026/10/6 16:05:18 阅读更多 →
网盘直链下载助手:把 8 大网盘的真实下载地址免费交给你,不用装客户端

网盘直链下载助手:把 8 大网盘的真实下载地址免费交给你,不用装客户端

网盘直链下载助手:把 8 大网盘的真实下载地址免费交给你,不用装客户端 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里…

2026/10/6 16:04:17 阅读更多 →

日新闻

杰理AC7916A硬件设计全指南:电源、时钟与射频三大关键

杰理AC7916A硬件设计全指南:电源、时钟与射频三大关键

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

2026/10/6 1:01:12 阅读更多 →
探针座选型指南:从需求梳理到验收避坑,稳稳解决半导体测试难题

探针座选型指南:从需求梳理到验收避坑,稳稳解决半导体测试难题

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

2026/10/6 1:01:36 阅读更多 →
SO-DIMM内存设计指南:DDR3与DDR4引脚、拓扑、布线及调试

SO-DIMM内存设计指南:DDR3与DDR4引脚、拓扑、布线及调试

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

2026/10/6 1:01:44 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

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

2026/10/6 7:15:40 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

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

2026/10/6 5:29:09 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

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

2026/10/6 6:26:51 阅读更多 →

月新闻

我发现了一个新思路:用 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/6 8:21:32 阅读更多 →
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/6 4:21:51 阅读更多 →
黑夜航拍船只数据集训练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/6 1:18:13 阅读更多 →