Vb.net 启用受保护视图时如何使用Word对象?
我在VB.net中有一些代码,可以循环浏览文档目录(.docx)并更新它们 代码正常,但如果其中有一个文档被视为“源自Internet”,则代码停止,因为Word默认情况下会在受保护的视图中打开它(可见性故意设置为false) 现在,我知道如何更改信任中心设置,但我需要我的应用程序在任何人的机器上运行,而用户(我的客户)可能不知道如何操作 有办法解决这个问题吗 谢谢 ---编辑--- 在最近的一个示例中,我试图用代码打开的一个文件通过FTP(由我)从外部添加到目录中。因此,当我的代码在目录中的所有文档中循环时,代码在该文件处停止,因为它现在“起源于互联网” 我的问题是,一旦打开文档,代码需要继续并编辑文档,但我的代码无法这样做,因为它是在“受保护视图”中打开的。由于word对象被设置为不可见,这将导致代码暂停以供使用输入(通常选择编辑文档),但他们无法看到它 不幸的是,手动更改信任中心设置在这里不是一个选项,因为此代码由不习惯自己更改的人在数百台不同的机器上运行-他们认为我的代码不起作用 下面是我的代码,它循环遍历一个目录并将一个图像插入到文档的标题中。我知道这有点草率,但我对这很陌生,每天都在学习。我已经用“'****这就是我的问题所在****”标记了问题发生的位置Vb.net 启用受保护视图时如何使用Word对象?,vb.net,ms-word,Vb.net,Ms Word,我在VB.net中有一些代码,可以循环浏览文档目录(.docx)并更新它们 代码正常,但如果其中有一个文档被视为“源自Internet”,则代码停止,因为Word默认情况下会在受保护的视图中打开它(可见性故意设置为false) 现在,我知道如何更改信任中心设置,但我需要我的应用程序在任何人的机器上运行,而用户(我的客户)可能不知道如何操作 有办法解决这个问题吗 谢谢 ---编辑--- 在最近的一个示例中,我试图用代码打开的一个文件通过FTP(由我)从外部添加到目录中。因此,当我的代码在目录中的所
Word对象以这种方式打开可能有几个原因。下面是我列出的几个例子
- 文件跳过或失败Office文件验证Office文件验证是一种安全功能,用于扫描文件以查找文件格式漏洞。如果Office文件验证检测到可能的漏洞或其他不安全的文件损坏,则该文件将在受保护视图中打开
- AES区域信息确定文件不安全附件执行服务(AES)将区域信息添加到Outlook、Internet Explorer和某些其他应用程序下载的文件中。如果文件的区域信息表明该文件来自不受信任的网站或Internet,则下载的文件将在受保护的视图中打开
- 用户在受保护视图中打开文件用户可以通过在“打开”对话框中选择“在受保护视图中打开”,或按住SHIFT键,选择文件名,然后从其快捷菜单(右键单击)中选择“在受保护视图中打开”,在受保护视图中打开文件
- 默认情况下,文件是从不安全的位置打开的,不安全的位置包括用户的“Internet临时文件”文件夹和“下载的程序文件”文件夹。但是,您可以使用组策略设置来指定其他不安全的位置
ProtectedViewWindows.Open
功能;不管它是否受到保护
ProtectedViewWindows.Open(filename)
所以这就是我想要的: 要强制文档进入受保护视图并从中编辑它,请执行以下操作:
Sub OpenPVThenEdit
ProtectedViewWindows.Open("DOCUMENT PATH HERE")
ProtectedViewWindows(1).Edit
End Sub
------------或-------------
如果没有打开其他Word文档,并且希望检查文档是否已在受保护视图中打开:
Sub TestForPVw
Documents.Open("DOCUMENT PATH HERE")
If ProtectedViewWindows.Count > 0 Then
ProtectedViewWindows(1).Edit
End If
End Sub
------------或-------------
如果您确实打开了其他Word文档,并希望检查此特定文档是否已在受保护视图中打开(未测试):
嘿,CoDeXeR先生,谢谢你。请参阅我的编辑,我试图更清楚地说明我的问题,并包括我的代码。非常感谢您的帮助:)您是否尝试了我在代码中提到的内容。。。受保护的视图。。应该绕过此屏幕…是的,我确实尝试过,但它似乎可以在受保护的视图中打开所有文档。我实际上希望永远不要在受保护的视图中打开:)
Sub TestForPVw
Documents.Open("DOCUMENT PATH HERE")
If ProtectedViewWindows.Count > 0 Then
ProtectedViewWindows(1).Edit
End If
End Sub
Sub TestForPVw
Dim dDoc as Document
Set dDoc = Documents.Open("DOCUMENT PATH HERE")
If ProtectedViewWindows.Count > 0 Then
ProtectedViewWindows(dDoc.Name).Edit
End If
End Sub