2023年12月13日发(作者:)

c#频繁读取word文件所请求的剪切板操作失败解决方法

前段时候在为学校做作业抄袭检测系统,当读入大量word文档时经常会出现 所请求的剪切版操作失败,如下图:

以下是读word文档时所用的源代码:

protected void openFile(RichTextBox rtb, string fileNameTemp)

{

try

{

ation myWordApp =

new ationClass();

object file = fileNameTemp;

object nullobj = ;

object readOnly = false;

object isVisible = true;

nt doc = (ref file, ref nullobj, ref readOnly,

ref nullobj, ref nullobj, ref nullobj,

ref nullobj, ref nullobj, ref nullobj,

ref nullobj, ref nullobj, ref nullobj,

ref nullobj, ref isVisible, ref nullobj, ref nullobj);

tory();

();

IDataObject data = aObject();

= a().ToString();

(ref nullobj, ref nullobj, ref nullobj);

//关闭WordApp组件对象

(ref nullobj, ref nullobj, ref nullobj);

}

catch (Exception ex)

{

(e);

}

}

我通过仔细研发现,出现此问题是由于有得word文档中存在一些剪切板没有关闭,所以运行此代码会出错,并且运行此代码后,打开一

个.txt文档,按ctrl+v可以张贴出刚刚读过的文档,我以为是由于剪切板没有清空的原因,于是我加入();代码:

= a().ToString();

();

(ref nullobj, ref nullobj, ref nullobj); //关闭WordApp组件对象 (ref nullobj, ref nullobj,

ref nullobj); }

然而新的问题又出现了,首先弹出:

接着又弹出:

万恶的剪切板!!最后在网上四处查找,终于找到可以不用剪切板来完成读word文档的操作,并且经过测试不再有类似问题。

以下是改善后的代码:

protected void openFile(RichTextBox rtb, string fileNameTemp)

{

try

{

ation myWordApp = new ationClass();

object file = fileNameTemp;

object nullobj = ;

object readOnly = false;

object isVisible = true;

nt doc = (ref file, ref nullobj, ref readOnly,

ref nullobj, ref nullobj, ref nullobj,

ref nullobj, ref nullobj, ref nullobj,

ref nullobj, ref nullobj, ref nullobj,

ref nullobj, ref isVisible, ref nullobj, ref nullobj);

//tory();

//();

();

//IDataObject data = aObject();

// = a().ToString();

= ;

(ref nullobj, ref nullobj, ref nullobj);

//关闭WordApp组件对象

// myWordApp = null;

();

(ref nullobj, ref nullobj, ref nullobj);

}

catch (Exception ex)

{

(e);

}

}