Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 启用受保护视图时如何使用Word对象?_Vb.net_Ms Word - Fatal编程技术网

Vb.net 启用受保护视图时如何使用Word对象?

Vb.net 启用受保护视图时如何使用Word对象?,vb.net,ms-word,Vb.net,Ms Word,我在VB.net中有一些代码,可以循环浏览文档目录(.docx)并更新它们 代码正常,但如果其中有一个文档被视为“源自Internet”,则代码停止,因为Word默认情况下会在受保护的视图中打开它(可见性故意设置为false) 现在,我知道如何更改信任中心设置,但我需要我的应用程序在任何人的机器上运行,而用户(我的客户)可能不知道如何操作 有办法解决这个问题吗 谢谢 ---编辑--- 在最近的一个示例中,我试图用代码打开的一个文件通过FTP(由我)从外部添加到目录中。因此,当我的代码在目录中的所

我在VB.net中有一些代码,可以循环浏览文档目录(.docx)并更新它们

代码正常,但如果其中有一个文档被视为“源自Internet”,则代码停止,因为Word默认情况下会在受保护的视图中打开它(可见性故意设置为false)

现在,我知道如何更改信任中心设置,但我需要我的应用程序在任何人的机器上运行,而用户(我的客户)可能不知道如何操作

有办法解决这个问题吗

谢谢

---编辑---

在最近的一个示例中,我试图用代码打开的一个文件通过FTP(由我)从外部添加到目录中。因此,当我的代码在目录中的所有文档中循环时,代码在该文件处停止,因为它现在“起源于互联网”

我的问题是,一旦打开文档,代码需要继续并编辑文档,但我的代码无法这样做,因为它是在“受保护视图”中打开的。由于word对象被设置为不可见,这将导致代码暂停以供使用输入(通常选择编辑文档),但他们无法看到它

不幸的是,手动更改信任中心设置在这里不是一个选项,因为此代码由不习惯自己更改的人在数百台不同的机器上运行-他们认为我的代码不起作用

下面是我的代码,它循环遍历一个目录并将一个图像插入到文档的标题中。我知道这有点草率,但我对这很陌生,每天都在学习。我已经用“'****这就是我的问题所在****”标记了问题发生的位置


Word对象以这种方式打开可能有几个原因。下面是我列出的几个例子

  • 文件跳过或失败Office文件验证Office文件验证是一种安全功能,用于扫描文件以查找文件格式漏洞。如果Office文件验证检测到可能的漏洞或其他不安全的文件损坏,则该文件将在受保护视图中打开
  • AES区域信息确定文件不安全附件执行服务(AES)将区域信息添加到Outlook、Internet Explorer和某些其他应用程序下载的文件中。如果文件的区域信息表明该文件来自不受信任的网站或Internet,则下载的文件将在受保护的视图中打开
  • 用户在受保护视图中打开文件用户可以通过在“打开”对话框中选择“在受保护视图中打开”,或按住SHIFT键,选择文件名,然后从其快捷菜单(右键单击)中选择“在受保护视图中打开”,在受保护视图中打开文件
  • 默认情况下,文件是从不安全的位置打开的,不安全的位置包括用户的“Internet临时文件”文件夹和“下载的程序文件”文件夹。但是,您可以使用组策略设置来指定其他不安全的位置
您可以按照以下步骤关闭受保护视图…

  • 首先启动任何Office程序,如Microsoft Word,然后单击功能区中的“文件”菜单

  • 现在单击左侧边栏中的选项选项卡

  • 它将打开“选项”窗口。现在单击左侧窗格末尾给出的“信任中心”选项卡,然后单击“信任中心设置”按钮

  • 单击“受保护视图”选项卡并在右侧窗格中单击

  • 默认情况下,所有选项都处于启用状态。禁用所需选项或禁用所有给定选项以完全关闭受保护视图,然后单击“确定”按钮保存更改

  • 关闭Office程序,现在无论何时打开从Internet下载或附加在电子邮件中的文件,它都会正常打开,而不是受保护的视图

  • 注:如果上述方法不适用于您,请单击“信任中心设置”窗口中的“文件块设置”选项卡,然后单击“恢复默认值”按钮

    您还可以右键单击文件本身并转到“属性”,然后单击“取消阻止”。默认情况下,从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