WPF复制异常问题(OpenClipboard 失败 (异常来自 HRESULT:0x800401D0 (CLIPBRD_E_CANT_OPEN)))
最近在维护WPF系统的时候发现的问题,刚刚开始自己的电脑都不能重现,后面写日志跟踪才发现问题的所在。问题主要是由于:1.在程序访问剪切板的时候,有其他程序正在占用剪切板,导致自己的程序无法访问,从而抛出异常;2.没有访问的权限,导致自己的程序无法访问。这个是之前在App.xaml.cs文件中的写法:
#region/ <summary>/ 处理异常的方法/ </summary>/ <param name="sender"></param>/ <param name="e"></param>private void Application_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e){//在wpf中如果复制没有权限此时也会进来这里(PS:以管理员和兼容性运行此程序即可哦)if (e.Exception.InnerException.Message.Contains("网络") || e.Exception.InnerException.Message.Contains("超时") || e.Exception.InnerException.Message.Contains("暂停")){BugReport report = new BugReport(e.Exception);report.Save();e.Handled = true;report.LaunchBugReport();MessageBox.Show(e.Exception.InnerException.Message);}else{BugReport report = new BugReport(e.Exception);report.Save();report.LaunchBugReport();e.Handled = true;Application.Current.Shutdown();}}
这个是修改之后的写法:
在App.xaml文件中添加下面代码中红色的部分
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml"
DispatcherUnhandledException="Application_DispatcherUnhandledException"
在App.xaml.cs文件中添加代码:
private void Application_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e){var comException = e.Exception as System.Runtime.InteropServices.COMException;if (comException != null && comException.ErrorCode == -2147221040)e.Handled = true;BugReport report = new BugReport(e.Exception);report.Save();e.Handled = true;}
这种方法中剪切板动作会自动多次尝试,由于抛出的异常被App中的异常处理给截获了,所以会不断的尝试直到成功。(PS:以上只是个人的看法,有不当之处,烦请指正。谢谢!)
WPF复制异常问题(OpenClipboard 失败 (异常来自 HRESULT:0x800401D0 (CLIPBRD_E_CANT_OPEN)))相关推荐
- WPF .NET 4.0 OpenClipboard 失败 (异常来自 HRESULT:0x800401D0 (CLIPBRD_E_CANT_OPEN)) BUG解决
WPF .NET 4.0 OpenClipboard 失败 (异常来自 HRESULT:0x800401D0 (CLIPBRD_E_CANT_OPEN)) BUG解决 参考文章: (1)WPF .NE ...
- wpf 复制到粘贴板_WPF Clipboard剪贴板缺陷解决方案
异常信息"OpenClipboard HRESULT:0x800401D0 (CLIPBRD_E_CANT_OPEN WPF本身对Clipboard处理的问题,在.Net4.0及之前的版本中 ...
- word 远程过程调用失败。 (异常来自 HRESULT:0x800706BE) 解决方法
word 远程过程调用失败. (异常来自 HRESULT:0x800706BE) 解决方法 参考文章: (1)word 远程过程调用失败. (异常来自 HRESULT:0x800706BE) 解决方法 ...
- 【转】没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))
工程文件当初使用win7 32位电脑编写,今年更换电脑(Win7 64位)发现工程运行到((System.ComponentModel.ISupportInitialize)(this.axS7_PP ...
- 无法加载 DLL“SQLite.Interop.DLL”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。...
无法加载 DLL"SQLite.Interop.DLL": 找不到指定的模块. (异常来自 HRESULT:0x8007007E). 在项目里添加 现有项 把SQLite.In ...
- DLL错误之——无法加载DLL “xxxxx.dll” : 找不到指定的模块(异常来自HRESULT:0x8007007E)
最近一个应用需求,需要调用封装好的DLL,我已经将所用模块复制到bin/Debug目录下,但编译时提示错误:"无法加载DLL"***.dll":找不到指定的模块(异常来自 ...
- 异常来自 HRESULT:0x80040E14
突然听客户说系统只要涉及到编辑和新增功能就会出现 "异常来自 HRESULT:0x80040E14",这个异常也见过,他是出现在访问站点的时候,只要输入siteurl 就会出现 & ...
- 【已解决】无法加载 DLL“xxx.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。
目录 异常 背景及产生原因 解决方法 异常 无法加载 DLL"xxx.dll": 找不到指定的模块. (异常来自 HRESULT:0x8007007E). 背景及产生原因 C#中采 ...
- “未处理System.BadImageFormatException HResult=-2147024885 Message=试图加载格式不正确的程序。 (异常来自 HRESULT:0x800
本文原地址 试图加载格式不正确的程序. (异常来自 HRESULT:0x8007000B) - sundajade - 博客园 "未处理System.BadImageFormatExcept ...
- iis提示“另一个程序正在使用此文件,进程无法访问。(异常来自HRESULT:0x80070020) ”解决办法...
iis提示"另一个程序正在使用此文件,进程无法访问.(异常来自HRESULT:0x80070020) "解决办法 今天在做服务器测试的时候意外发生IIS的默认网站启不来,尝试启动的 ...
最新文章
- Outlook Hotmail Connector
- Yoga710笔记本Win10和Ubuntu系统共存
- 华为鸿蒙系统自动驾驶,华为高阶自动驾驶 + 华为鸿蒙 OS 车机系统体验
- git 客户端_GEE 学习笔记 3: 客户端连接远程服务器的 Jupyter ( git 作为本地工具)
- thinkpad解决Win8.1电源管理的方法
- 运营周期爆发期是什么?
- java中lastmodified_Java File lastModified()用法及代码示例
- win10如何显示html文件夹,Win10显示隐藏文件夹图标_Win10查看隐藏文件夹方法-192路由网...
- 细说Dev c++的使用方法及常见问题
- 2022安好? 2023何如?
- 【EXLIBRIS】随笔记 002
- RHCE认证考试成绩公布(转)
- 滚动计划方法、WBS方法、网络计划方法:理解三种计划方法并比较优缺点
- 山东python编程培训,Python进入山东省小学教材了
- 将linux系统安装到U盘
- 北京有哪些牛逼的中小型公司?
- keepalived健康检查
- Designing for iPhone 4's Retina Display
- 如何使用域组策略(AD GPO)分发软件安装以及卸载
- 深入理解Arrays.sort()