如何解决防止0x800401D3 CLIPBRD_E_BAD_DATA错误
运行以下代码后,每隔一段时间我都会收到一个错误
System.Runtime.InteropServices.COMException:剪贴板上的数据为 无效(来自HRESULT的异常:0x800401D3(CLIPBRD_E_BAD_DATA))
我通过尝试并正确的try-catch
块处理错误,这对我的需求来说很合适,但是应用进入硬退出状态或GUI变得无响应,应用程序必须从任务管理器中终止(我认为硬退出是由于在查看错误时无意中关闭了主窗口。
代码检查有效数据ContainsData(DataFormats.Text)
,如果还可以,则提取文本并尝试确定文本是否为路径文件。
首先有没有办法防止错误?如果没有有效的文本,则无需执行检查剪贴板的过程。
代码
try
{
var doesClipboardHaveText = Clipboard.ContainsData(DataFormats.Text);
if (doesClipboardHaveText)
{
var pathString = Clipboard.GetText(); // <- Exception Thrown here.
if (pathString.IndexOfAny(System.IO.Path.GetInvalidPathChars()) == -1)
{
contains = pathString.Split(new char[] { ',' })
.Any(File.Exists);
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。