KennethCheng c036a8dcb8 fix: 复制按钮加重试逻辑(CLIPBRD_E_CANT_OPEN 是常见 race)
修复 bug:点 [复制] 按钮偶发 "OpenClipboard 失败 0x800401D0 (CLIPBRD_E_CANT_OPEN)"。

根因:Clipboard.SetText 不自带重试,剪贴板被其他进程占着(RDP 同步、杀软扫描、用户刚复制过其他内容)时会抛 COMException 0x800401D0,典型 race condition。

修法:CopyMessageButton_Click 里包一层重试循环,最多 10 次,每次失败后 Thread.Sleep 50ms 再试(总等待上限 ~500ms,对 UI 不可感知)。失败兜底弹 MessageBox 显示重试次数 + HRESULT 0x 代码,方便用户诊断。

只捕获 COMException(剪贴板错误都走 OLE COM 接口),其他异常类型继续向上抛。
2026-09-06 23:04:18 +08:00
S
Description
No description provided
210 KiB
v0.1
Latest
-
Languages
C# 95.4%
PowerShell 4.6%