最近在维护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)))相关推荐

  1. 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 ...

  2. wpf 复制到粘贴板_WPF Clipboard剪贴板缺陷解决方案

    异常信息"OpenClipboard HRESULT:0x800401D0 (CLIPBRD_E_CANT_OPEN WPF本身对Clipboard处理的问题,在.Net4.0及之前的版本中 ...

  3. word 远程过程调用失败。 (异常来自 HRESULT:0x800706BE) 解决方法

    word 远程过程调用失败. (异常来自 HRESULT:0x800706BE) 解决方法 参考文章: (1)word 远程过程调用失败. (异常来自 HRESULT:0x800706BE) 解决方法 ...

  4. 【转】没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))

    工程文件当初使用win7 32位电脑编写,今年更换电脑(Win7 64位)发现工程运行到((System.ComponentModel.ISupportInitialize)(this.axS7_PP ...

  5. 无法加载 DLL“SQLite.Interop.DLL”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。...

    无法加载 DLL"SQLite.Interop.DLL": 找不到指定的模块. (异常来自 HRESULT:0x8007007E). 在项目里添加  现有项  把SQLite.In ...

  6. DLL错误之——无法加载DLL “xxxxx.dll” : 找不到指定的模块(异常来自HRESULT:0x8007007E)

    最近一个应用需求,需要调用封装好的DLL,我已经将所用模块复制到bin/Debug目录下,但编译时提示错误:"无法加载DLL"***.dll":找不到指定的模块(异常来自 ...

  7. 异常来自 HRESULT:0x80040E14

    突然听客户说系统只要涉及到编辑和新增功能就会出现 "异常来自 HRESULT:0x80040E14",这个异常也见过,他是出现在访问站点的时候,只要输入siteurl 就会出现 & ...

  8. 【已解决】无法加载 DLL“xxx.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。

    目录 异常 背景及产生原因 解决方法 异常 无法加载 DLL"xxx.dll": 找不到指定的模块. (异常来自 HRESULT:0x8007007E). 背景及产生原因 C#中采 ...

  9. “未处理System.BadImageFormatException HResult=-2147024885 Message=试图加载格式不正确的程序。 (异常来自 HRESULT:0x800

    本文原地址 试图加载格式不正确的程序. (异常来自 HRESULT:0x8007000B) - sundajade - 博客园 "未处理System.BadImageFormatExcept ...

  10. iis提示“另一个程序正在使用此文件,进程无法访问。(异常来自HRESULT:0x80070020) ”解决办法...

    iis提示"另一个程序正在使用此文件,进程无法访问.(异常来自HRESULT:0x80070020) "解决办法 今天在做服务器测试的时候意外发生IIS的默认网站启不来,尝试启动的 ...

最新文章

  1. Outlook Hotmail Connector
  2. Yoga710笔记本Win10和Ubuntu系统共存
  3. 华为鸿蒙系统自动驾驶,华为高阶自动驾驶 + 华为鸿蒙 OS 车机系统体验
  4. git 客户端_GEE 学习笔记 3: 客户端连接远程服务器的 Jupyter ( git 作为本地工具)
  5. thinkpad解决Win8.1电源管理的方法
  6. 运营周期爆发期是什么?
  7. java中lastmodified_Java File lastModified()用法及代码示例
  8. win10如何显示html文件夹,Win10显示隐藏文件夹图标_Win10查看隐藏文件夹方法-192路由网...
  9. 细说Dev c++的使用方法及常见问题
  10. 2022安好? 2023何如?
  11. 【EXLIBRIS】随笔记 002
  12. RHCE认证考试成绩公布(转)
  13. 滚动计划方法、WBS方法、网络计划方法:理解三种计划方法并比较优缺点
  14. 山东python编程培训,Python进入山东省小学教材了
  15. 将linux系统安装到U盘
  16. 北京有哪些牛逼的中小型公司?
  17. keepalived健康检查
  18. Designing for iPhone 4's Retina Display
  19. 如何使用域组策略(AD GPO)分发软件安装以及卸载
  20. 深入理解Arrays.sort()

热门文章

  1. 稳压二极管限流电阻怎么选择
  2. vue3-antd-admin开源学习-后台管理框架
  3. BSOD 0x00000133
  4. Windows 10的“稳定”于2019年4月更新将在某些游戏中导致BSOD
  5. 辩证看待倾向性评分法
  6. java判断日文_java判断字符串是否中文、日文
  7. python3调用arcpy地理加权回归_多元地理加权回归软件使用和含义
  8. FIB聚焦离子束系统常见的应用场景
  9. 解决iconfont 图标不显示问题
  10. 【咕嘎批量图片查找助手】如何批量根据图片文件名批量查找图片库,移动或复制到指定文件夹保存