Ms word 如果打开了相同的文档,打开时Powerbuilder word将挂起

Ms word 如果打开了相同的文档,打开时Powerbuilder word将挂起,ms-word,ole,powerbuilder,Ms Word,Ole,Powerbuilder,在打开word文档之前 我想检查是否已经打开了相同的文档。 如果打开了,那么我想关闭 app.documents.open(作为文档名)你可以试试这个 IF ole_myobject.Documents.Count >= 1 THEN ls_doc_name = ole_myobject.ActiveDocument.Name END IF 在这里,您可以获得有关其操作的帮助: 代码有效。以下示例将帮助您了解如何开发它: 声明实例变量: OLEObject ole_myobject

在打开word文档之前 我想检查是否已经打开了相同的文档。 如果打开了,那么我想关闭 app.documents.open(作为文档名)

你可以试试这个

IF ole_myobject.Documents.Count >= 1 THEN
   ls_doc_name = ole_myobject.ActiveDocument.Name
END IF
在这里,您可以获得有关其操作的帮助:

代码有效。以下示例将帮助您了解如何开发它:

声明实例变量:

OLEObject ole_myobject
事件打开():

按钮中的代码:

String ls_doc_name
String as_doc_name
String as_path_name

Long ll_ActiveDocument

as_path_name = "C:\"
as_doc_name = "Prueba.doc"

ole_myobject.visible=1

ll_ActiveDocument = ole_myobject.Documents.Count

IF ll_ActiveDocument >= 1 THEN 
    Ls_doc_name = ole_myobject.ActiveDocument.Name 
END IF 
if Ls_doc_name = as_doc_name THEN 
    ole_myobject.ActiveDocument.close(0) 
end if 
ole_myobject.documents.open(as_path_name + as_doc_name)

请记住“ole_myobject.ActiveDocument.close(0)”不会关闭Word,它仅关闭文档,但Word应用程序继续运行。

Word文档已在我的桌面上打开,因此在运行应用程序时,代码被挂起并提示三个选项:1)只读文件2)创建本地副本并稍后合并更改3)无需等待文件,因此为避免此情况,我想检查我的文件Word文档是否已打开有没有。如果打开,则关闭word文档并作为新的copyole\u myobject.ConnectToneObject(“word.application”)ole\u myobject.visible=false如果ole\u myobject.Documents.Count>=1则Ls\u doc\u name=ole\u myobject.ActiveDocument.name结束如果Ls\u doc\u name=as\u doc\u name则ole\u myobject.ActiveDocument.close(0)结束如果ole\u myobject.Documents.open(作为文档名称)查找带有“For…Next”的文档。这将验证所有打开的文档。已检查的活动文档计数为零,但我在任务栏中看到winword.exe仍在运行。请提供代码以检查PowerBuilderRole_myobject.documents.count中的所有活动word文档。计数显示为零,但我仍然收到此错误xxx.docx已被用户锁定以进行编辑。是否希望:1)打开只读副本2)创建本地副本并稍后合并更改3)在原始副本可用时收到通知执行我给您的示例时,请注意connecttonewobject()函数的确切位置,使用“ole_myobject.Documents.Count”时,不正确的位置始终返回零我的代码类似于您在上面添加的代码,但当word文档被挂起,会话被关闭时,问题就发生了。复制新文档,访问同一文档就是问题所在。
String ls_doc_name
String as_doc_name
String as_path_name

Long ll_ActiveDocument

as_path_name = "C:\"
as_doc_name = "Prueba.doc"

ole_myobject.visible=1

ll_ActiveDocument = ole_myobject.Documents.Count

IF ll_ActiveDocument >= 1 THEN 
    Ls_doc_name = ole_myobject.ActiveDocument.Name 
END IF 
if Ls_doc_name = as_doc_name THEN 
    ole_myobject.ActiveDocument.close(0) 
end if 
ole_myobject.documents.open(as_path_name + as_doc_name)