“Windows 开发”标签的文章
带有“Windows 开发”标签的文章共 37 篇,按发布日期从新到旧排列。
-
Windows 应用的任务栏托盘常驻与 Toast 通知 —— NotifyIcon 的坑与 AppNotification 的选型
本文整理了将业务 Windows 应用常驻在任务栏托盘(通知区域)并通过 Toast 通知告知用户的实现要点。内容涵盖 NotifyIcon 的正确用法与「关闭后驻留托盘」的设计、资源管理器重启后的重新注册、三种 Toast API(Windows App SDK AppNotification / Commun...
-
VB6 应用能用到什么时候 ── 运行时支持现状与务实的 .NET 迁移做法
VB6 应用程序到底能用到什么时候?本文整理 VB6 运行时的支持政策(Windows 11 也在支持范围内)与 IDE 支持早已终止这一不对称现状,并以实务指南的形式说明全面重写、自动转换、分阶段迁移的判断表、迁移前的资产盘点、VB6 与 .NET 的不兼容之处,以及 C# 与 VB.NET 的选择。
-
业务应用程序的日本年号・法定节假日・结算日处理 —— 抗改元设计与 JapaneseCalendar・营业日计算实务
报表要显示「令和8年」、营业日计算要排除法定节假日、20日结算次月末付款——日本业务应用程序特有的日期处理背后,隐藏着「日后会变动的规格」:改元、法定节假日的法规修订、月末的进位。本文整理了用 JapaneseCalendar 显示年号、抗改元的设计方式,法定节假日不可写死在代码中的原因,以及利用内阁府 CSV ...
-
Process Monitor(ProcMon)实战指南 —— 10 分钟定位「配置未生效」「ACCESS DENIED」问题
「明明修改了配置文件却没有生效」「昨天还能正常运行,今天却突然启动不了」——在动手修改源代码之前,Process Monitor(ProcMon)可以从文件、注册表访问的实际情况入手定位原因。本文从故障排查一线的视角,讲解 Filter 的实用技巧、NAME NOT FOUND・ACCESS DENIED・SHA...
-
WinForms/WPF应用的多语言化 ── resx、附属程序集与区域文化切换的实务
本文从实务角度系统梳理Windows桌面应用多语言化的要点:CurrentCulture与CurrentUICulture的区别、resx与附属程序集构成的资源机制、WinForms的Localizable属性、WPF的现实方案选择、运行时语言切换,以及排版、格式、RTL等内容。
-
CSV 不是「纯文本」──C# 业务应用中 CSV 实务(字符编码・Excel 兼容性・注入攻击防范)
梳理业务应用 CSV 读写中常见的事故模式──用 Split(',') 自行解析、无 BOM 的 UTF-8 导致 Excel 乱码、前导零丢失、CSV 注入攻击──并从实务角度讲解 RFC 4180 规则、.NET 中 Shift_JIS 的处理方式(CodePagesEncodingProvider),以及使...
-
不要用 using 包裹 HttpClient —— C# 业务应用的 HTTP 通信实务(创建模式・超时设计・重试)
C# 的 HttpClient 如果每次都用 using 创建会导致套接字耗尽,改成 static 又无法跟上 DNS 变更——本文从 Windows 业务应用的实务角度,整理这两大问题的成因,以及通过 PooledConnectionLifetime、IHttpClientFactory 实现正确创建模式、超时...
-
不只是 appsettings.json ── Windows 业务应用的配置管理实务(环境差异化设置・敏感信息・写入位置)
本文从实务角度整理 Windows 业务应用的配置管理,涵盖 appsettings.json 的分层、IConfiguration 与 IOptions/IOptionsSnapshot/IOptionsMonitor 的选用方式、环境差异化设置、可写入配置的存放位置、敏感信息的处理、运行期配置变更,以及从 a...
-
Windows 业务应用程序的打印与 PDF 输出 ── System.Drawing.Printing / WPF / 报表库的取舍选型
本文按需求整理成判断表,梳理 PrintDocument 的 WinForms 打印、WPF 的 FlowDocument/FixedDocument 打印,以及 PDF 输出的可选方案。并从实务角度讲解分页控制、DPI 偏差等实现陷阱,以及从 Windows 服务打印、依赖默认打印机的风险。
-
VB6 / Access 业务应用的续用与迁移 ── 保留、封装、替换的判断表
VB6 应用程序与 Microsoft Access 业务应用该如何判断是直接保留、只封装一部分继续用,还是全面替换?本文整理运行环境现状、ACE 的 32bit/64bit 问题、共享文件夹多人使用风险,以及升级到 SQL Server 的判断表与实务步骤。
-
防止 Windows 应用程序重复启动 ── 命名 Mutex 与重复执行时的窗口前置
整理业务型 Windows 应用程序的常见需求——「不让同一个应用程序启动两次」——如何用命名 Mutex 来实现。涵盖 Global\ 与 Local\ 命名空间差异在 RDP 环境中的陷阱、拥有线程限制与 AbandonedMutexException、在 SetForegroundWindow 限制下把已有...
-
委托开发 Windows 应用程序前该梳理的事项
在委托外包开发 Windows 应用程序之前,梳理现有软件改造、设备联动、COM/ActiveX、发布与更新、维护等需要注意的要点。
-
COM/OCX/ActiveX 开发中容易踩坑的注册与位数陷阱
本文从实务角度整理 COM、OCX、ActiveX 开发中容易踩坑的 32bit/64bit、Visual Studio 2022、regsvr32/Regasm、管理员权限、HKCR、STA/MTA 等问题。
-
Windows 什么时候需要管理员权限 - UAC、保护区域与设计上的辨别方式
从边界与存储位置的角度,整理 Windows 什么时候真正需要管理员权限:UAC、保护区域、HKLM、服务、驱动、防火墙。同时说明 per-user 与 per-machine 的差异,以及把管理员处理拆成独立 EXE、服务或任务的设计取舍,帮读者判断该不该提升权限。
-
什么是 VBA——局限性、未来走向、该替换的场景与现实的迁移方式
整理 VBA 的基本概念与局限性、未来走向、该替换的场景,以及 Excel 宏与企业内部工具分阶段迁移的现实做法。
-
Windows Forms、WPF、WinUI 该怎么选 - 新建项目、存量资产、发布、UI 表现力判断表
从存量资产的规模、界面是表单为主还是需要表现力、现代 Windows UI 是否是产品刚需、发布与运维怎么落地这四个角度,整理 WinForms、WPF、WinUI 该怎么选的判断表,并提醒只想用 Windows App SDK 不必全面迁移到 WinUI。
-
共享内存的陷阱与实务最佳实践
整理在实务中使用共享内存时的陷阱,以及涵盖同步、可见性、生命周期、ABI、权限等降低事故率的设计方法。
-
Windows 用户配置文件入门 - AppData 与 NTUSER.DAT
整理 Windows 用户配置文件的基础知识、AppData 的使用区分、本地 / 漫游 / Mandatory / Temporary、Folder Redirection、FSLogix,以及故障时的排查思路。
-
Excel 报表输出的实现方法 - COM / Open XML / 模板
Excel 报表输出的设计会因为「是自动操作 Excel、还是直接生成 xlsx、还是保留现有 VBA」而大不相同。本文以 Windows 应用和业务系统中的报表输出为前提,整理方案选型的判断标准与推荐结构。
-
用 Media Foundation 向 MP4 视频帧叠加图片与文字的方法
本文整理如何用 Media Foundation 向 MP4 视频的每一帧叠加图片与文字并生成新的 MP4:明确 Source Reader、绘制、色彩转换、Sink Writer 各自的职责分工,并给出可直接粘贴使用的单文件 C++ 示例。
-
意外异常发生时,应用该终止还是继续的判断表
本文从状态破坏、外部副作用、线程与原生边界等角度,整理发生意外异常时应用应该终止还是继续运行的判断依据,并给出常见场景下的判断表与建议。
-
在 Windows 应用中把「仅需管理员权限的处理」分离出来的具体写法
本文以 .NET 8 桌面应用为例,说明如何让 UI 保持 asInvoker,同时把仅需要管理员权限的处理分离到独立的 helper EXE,内容涵盖 UAC 判断、runas 启动、命名管道 ACL 设计、连接方 PID 验证与请求校验等具体做法。
-
Windows 应用程序不要把敏感信息以明文存进配置文件的最佳实践
本文整理 Windows 桌面应用保存连接凭证或 API Token 时的实务做法,说明为什么 DPAPI 与 ProtectedData 比明文或自制加密更能切断「文件外泄即等于敏感信息外泄」这条链条,并对比 CurrentUser 与 LocalMachine 的适用场景、优先顺序、日志泄漏风险,让读者带走一...
-
将 .NET Framework 迁移到 .NET 之前该确认的事 - 动手前就决定成败的实战检查清单
整理将 .NET Framework 业务应用程序迁移到现代 .NET 之前必须先盘点的论点。涵盖落地版本、Windows 专用前提的取舍、不再支持的 API、共享库切分方式、第三方组件、运维与 CI/CD,帮助在动手前厘清范围并降低迁移风险。
-
在 Media Foundation 中将 YUV 转换为 RGB 的方法 - 从原理讲透 Source Reader 自动转换与手动转换
本文整理在 Media Foundation 中把解码后的 YUV 帧转换为 RGB 的两种方式:交给 Source Reader 自动转换为 RGB32,或者自己接收 NV12/YUY2 手动转换。文中还讲解 stride、BT.601/BT.709 矩阵、limited range 与色度子采样等容易让颜色悄...
-
Windows 网卡高级设置详解 - Jumbo Packet、RSS、LSO、RSC、Flow Control、EEE、Wake on LAN 到底怎么设置
本文以实务角度逐项拆解 Windows 网卡高级设置,从 Speed & Duplex、Jumbo Packet 到 RSS、RSC、LSO、Interrupt Moderation、Flow Control、EEE 与 Wake on LAN,说明每项调整在吞吐量、延迟、CPU 与省电之间的取舍,并提供按症状排...
-
用 Media Foundation 从 MP4 视频中提取指定时间点静止图像的方法
本文整理了使用 Source Reader 从 MP4 中取出接近指定时间点的帧,并处理好 stride 与 RGB32 的 alpha 后保存为 PNG 的实现步骤。
-
Windows 应用程序开发安全性最低限度检查清单
本文以检查清单的形式,整理 WPF / WinForms / WinUI / C++ / C# 业务应用程序在权限、签名、更新、机密信息、HTTPS、输入验证、DLL 加载、日志等方面不想遗漏的基本要点。
-
COM / ActiveX / OCX 是什么 - 区别与关系整理
从实务角度厘清 COM、ActiveX、OCX 三者的区别与关系:COM 是 Windows 组件互操作的二进制契约底层,ActiveX 是以 COM 为基础的可嵌入控件语境,OCX 则是 ActiveX 控件常见的扩展名。读完就能分清机制、组件、文件这三层边界。
-
ActiveX / OCX 现在该如何处理 - 保留、封装、替换的判断表
本文整理发现 ActiveX / OCX 时应该选择保留、封装还是替换,涵盖 32bit / 64bit、注册、浏览器依赖、供应商维护等因素。
-
工业相机控制应用运行一个月后突然崩溃时(下篇) - 什么是 Application Verifier 与异常路径测试基础设施的做法
下篇整理 Application Verifier 是什么以及怎么把它编入 Windows 异常路径测试基础设施。用 Handles 抓 invalid handle、Low Resource Simulation 不用把机器榨干就触发资源不足,搭配 harness EXE 与自研日志,做出「坏了也能解释」的基础设施。
-
工业相机长期运行崩溃调查 - handle 泄漏篇
本文以工业相机控制应用长时间运行后突然崩溃的实际案例,从 handle 泄漏的排查方法与日志设计的角度,整理 Windows 应用长时间运行后崩溃时的排查思路。
-
文件集成互斥控制基础知识 - 文件锁与原子 claim 的最佳实践
本文从文件锁、原子 claim、temp -> rename、idempotency(幂等性)等角度整理文件集成的互斥控制,并总结在共享文件夹集成中避免事故的设计方法。
-
从 C# 调用原生 DLL:C++/CLI 包装器 vs P/Invoke
本文从所有权、异常、C++ 类型、回调等角度,区分在 C# 中使用原生 DLL 时 P/Invoke 已经够用的场景与 C++/CLI 包装器更有效的场景,并整理插入一层薄包装的架构所带来的优点。
-
COM STA/MTA 基础 - 线程模型与避免 Hang 的思路
本文用流程图整理 COM 的 Apartment 模型(STA/MTA),说明 UI 线程为何采用 STA、跨 Apartment 调用如何通过 Proxy/Stub 进行 Marshaling,并通过具体伪代码演示没有消息循环的 STA 为何容易 Hang,以及同步调用中的 Callback 为何容易死锁,帮助...
-
32 位应用调用 64 位 DLL 的 COM 桥接实例
本文整理当 32 位应用无法直接调用 64 位 DLL 时,通过 COM 桥接进行集成的思路,并结合 Windows 的限制、架构设计与处理流程加以说明。
-
什么是 COM - 为什么 Windows COM 的设计至今依然优美
本文从 Windows COM 的接口设计、IUnknown、GUID、二进制兼容性等角度整理 COM 是什么,并说明它至今依然适用的原因。