服务器正在运行中,由于另一个程序正在运行中,此操作无法完成。

时间:2023-01-07 04:59:14
写了个将word转换为bmp的程序,搞了很久了,

有时候会出错,提示:

服务器正在运行中

由于另一个程序正在运行中,此操作无法完成。


受不了了。



源码在:


http://hzsrc.ctfs.ftn.qq.com/ftn_handler/4084f1eb68543c08954222073c857e51ea5c1c4a1c1847fec2bb5de7a91d7382d76c85459bb095579159823f3d0d5b5aeff18a58107e62a13283ac25f2c189b3/?fname=%E5%B0%86word%E4%BF%9D%E5%AD%98%E6%88%90%E5%9B%BE%E7%89%87%E7%9A%84%E4%B8%80%E4%B8%AA%E4%BE%8B%E5%AD%90.zip&k=64613734166bcf993be21d13133403490f050552025655001a5551060d19055554071a560455574b5402000d0307550204570005352a31db9c165846518592d2d1d2fef989f29dd3f3b38c8cc3f4ccb1e44f4d5d45340c&fr=00&&txf_fid=c8f97f61e26bb6d6c7d1086a66d9256f22c8feb1&xffz=106717

对于进程外的com,没有法子解决这个问题吗,这个问题有时候会出现,有时候不会出现

是在无法解决了。
 
代码再:
void CMyDialog::OnBnClickedButton1()里面



8 个解决方案

#1


/*屏蔽掉"服务器正在运行中"要选择"切换到..."或"重试"的对话框*/
AfxOleGetMessageFilter()->EnableBusyDialog(FALSE);
AfxOleGetMessageFilter()->SetBusyReply(SERVERCALL_RETRYLATER);
AfxOleGetMessageFilter()->EnableNotRespondingDialog(TRUE);
AfxOleGetMessageFilter()->SetMessagePendingDelay(-1);

#2


引用 1 楼 fengqinqdca 的回复:
/*屏蔽掉"服务器正在运行中"要选择"切换到..."或"重试"的对话框*/
AfxOleGetMessageFilter()->EnableBusyDialog(FALSE);
AfxOleGetMessageFilter()->SetBusyReply(SERVERCALL_RETRYLATER);
AfxOleGetMessageFilter()->Enable……


帅哥,我哦在哪里加这几句代码呢?

#3



注意以下代码顺序 在我电脑上面,测试20次,没有问题
objWordApp.Quit(
ovFalse,       // 保存修改
ovTrue,        // 原始格式
ovFalse        // RouteDocument.
);
objNewDoc.ReleaseDispatch();
objDoc.ReleaseDispatch();
objDocs.ReleaseDispatch();

#4


引用 2 楼 bsnry 的回复:
引用 1 楼 fengqinqdca 的回复:/*屏蔽掉"服务器正在运行中"要选择"切换到..."或"重试"的对话框*/
AfxOleGetMessageFilter()->EnableBusyDialog(FALSE);
AfxOleGetMessageFilter()->SetBusyReply(SERVERCALL_RETRYLATER);
AfxOleGet……

对话框的OnInitDialog中

#5


每次打开文档的时候,先拷贝一份到你的临时目录,再打开临时目录下的文档,应该可以的。

#6


大概试了下可以的。

#7


引用 4 楼 oyljerry 的回复:
引用 2 楼 bsnry 的回复:引用 1 楼 fengqinqdca 的回复:/*屏蔽掉"服务器正在运行中"要选择"切换到..."或"重试"的对话框*/
AfxOleGetMessageFilter()->EnableBusyDialog(FALSE);
AfxOleGetMessageFilter()->SetBusyReply(SERVERCALL_RETRYL……


大佬

你看吧:

:\c_plus_plus\将word保存成图片的一个例子\mydialog.cpp(29) : error C2227: “->EnableBusyDialog”的左边必须指向类/结构/联合/泛型类型
1>e:\c_plus_plus\将word保存成图片的一个例子\mydialog.cpp(30) : error C2027: 使用了未定义类型“COleMessageFilter”
1>        d:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(4445) : 参见“COleMessageFilter”的声明
1>e:\c_plus_plus\将word保存成图片的一个例子\mydialog.cpp(30) : error C2227: “->SetBusyReply”的左边必须指向类/结构/联合/泛型类型
1>e:\c_plus_plus\将word保存成图片的一个例子\mydialog.cpp(31) : error C2027: 使用了未定义类型“COleMessageFilter”

我能说啥啊?

#8


回复于: 2012-12-18 18:44:24 
引用 2 楼 bsnry 的回复:
引用 1 楼 fengqinqdca 的回复:/*屏蔽掉"服务器正在运行中"要选择"切换到..."或"重试"的对话框*/
AfxOleGetMessageFilter()->EnableBusyDialog(FALSE);
AfxOleGetMessageFilter()->SetBusyReply(SERVERCALL_RETRYLATER);
AfxOleGet……
对话框的OnInitDialog中 

#1


/*屏蔽掉"服务器正在运行中"要选择"切换到..."或"重试"的对话框*/
AfxOleGetMessageFilter()->EnableBusyDialog(FALSE);
AfxOleGetMessageFilter()->SetBusyReply(SERVERCALL_RETRYLATER);
AfxOleGetMessageFilter()->EnableNotRespondingDialog(TRUE);
AfxOleGetMessageFilter()->SetMessagePendingDelay(-1);

#2


引用 1 楼 fengqinqdca 的回复:
/*屏蔽掉"服务器正在运行中"要选择"切换到..."或"重试"的对话框*/
AfxOleGetMessageFilter()->EnableBusyDialog(FALSE);
AfxOleGetMessageFilter()->SetBusyReply(SERVERCALL_RETRYLATER);
AfxOleGetMessageFilter()->Enable……


帅哥,我哦在哪里加这几句代码呢?

#3



注意以下代码顺序 在我电脑上面,测试20次,没有问题
objWordApp.Quit(
ovFalse,       // 保存修改
ovTrue,        // 原始格式
ovFalse        // RouteDocument.
);
objNewDoc.ReleaseDispatch();
objDoc.ReleaseDispatch();
objDocs.ReleaseDispatch();

#4


引用 2 楼 bsnry 的回复:
引用 1 楼 fengqinqdca 的回复:/*屏蔽掉"服务器正在运行中"要选择"切换到..."或"重试"的对话框*/
AfxOleGetMessageFilter()->EnableBusyDialog(FALSE);
AfxOleGetMessageFilter()->SetBusyReply(SERVERCALL_RETRYLATER);
AfxOleGet……

对话框的OnInitDialog中

#5


每次打开文档的时候,先拷贝一份到你的临时目录,再打开临时目录下的文档,应该可以的。

#6


大概试了下可以的。

#7


引用 4 楼 oyljerry 的回复:
引用 2 楼 bsnry 的回复:引用 1 楼 fengqinqdca 的回复:/*屏蔽掉"服务器正在运行中"要选择"切换到..."或"重试"的对话框*/
AfxOleGetMessageFilter()->EnableBusyDialog(FALSE);
AfxOleGetMessageFilter()->SetBusyReply(SERVERCALL_RETRYL……


大佬

你看吧:

:\c_plus_plus\将word保存成图片的一个例子\mydialog.cpp(29) : error C2227: “->EnableBusyDialog”的左边必须指向类/结构/联合/泛型类型
1>e:\c_plus_plus\将word保存成图片的一个例子\mydialog.cpp(30) : error C2027: 使用了未定义类型“COleMessageFilter”
1>        d:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(4445) : 参见“COleMessageFilter”的声明
1>e:\c_plus_plus\将word保存成图片的一个例子\mydialog.cpp(30) : error C2227: “->SetBusyReply”的左边必须指向类/结构/联合/泛型类型
1>e:\c_plus_plus\将word保存成图片的一个例子\mydialog.cpp(31) : error C2027: 使用了未定义类型“COleMessageFilter”

我能说啥啊?

#8


回复于: 2012-12-18 18:44:24 
引用 2 楼 bsnry 的回复:
引用 1 楼 fengqinqdca 的回复:/*屏蔽掉"服务器正在运行中"要选择"切换到..."或"重试"的对话框*/
AfxOleGetMessageFilter()->EnableBusyDialog(FALSE);
AfxOleGetMessageFilter()->SetBusyReply(SERVERCALL_RETRYLATER);
AfxOleGet……
对话框的OnInitDialog中