Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.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_Office Interop - Fatal编程技术网

在vb.net中打开word文件时禁止用户编辑

在vb.net中打开word文件时禁止用户编辑,vb.net,ms-word,office-interop,Vb.net,Ms Word,Office Interop,我有一个列出多个Word和Excel文件的应用程序,因此当用户双击其中一个文件时,它会打开并可以编辑。我想授予用户编辑或不编辑的权限 我搜索了很多,到目前为止我找到的是 ProtectedViewWindows.Open(mFolderPath) Process.Start(myDocPath) 但它给了我一个错误: 对非共享成员的引用需要对象引用 此错误消息表示,Open不是ProtectedViewWindows类中的共享函数,因此在调用Open对象之前,必须创建一个ProtectedV

我有一个列出多个Word和Excel文件的应用程序,因此当用户双击其中一个文件时,它会打开并可以编辑。我想授予用户编辑或不编辑的权限

我搜索了很多,到目前为止我找到的是

ProtectedViewWindows.Open(mFolderPath) 
Process.Start(myDocPath)
但它给了我一个错误:

对非共享成员的引用需要对象引用


此错误消息表示,
Open
不是
ProtectedViewWindows
类中的共享函数,因此在调用
Open
对象之前,必须创建一个
ProtectedViewWindows
对象

比如:

Dim pvw As ProtectedViewWindows = New ProtectedViewWindows
pvw.Open(mFolderPath)
Process.Start(myDocPath)

可能
ProtectedViewWindow
的构造函数需要一个或多个参数。

ProtectedViewWindow
不是用来阻止用户编辑文档的。这是Office应用程序中内置的功能,用于打开来自不受信任来源的文档。在这一点上,报告的解释比较清楚,;你可能也想读书

因此,您的隐含问题的答案是:您不能使用对象模型的这一部分来做您想要做的事情

Word和Excel都不是设计用来作为“读者”的——它们是编辑。如果你只想让用户阅读,那么你需要寻找一个阅读器。例如,将文件保存为PDF格式,以便在Acrobat Reader中打开


FWIW可以使用各自的保护机制保护Word和Excel文件的全部或部分。这必须应用于使用对象模型打开的文件(或通过编辑关闭文件的打开XML)

文档对象提供了保护类型参数的保护方法,这种类型的WDRealStype枚举可以考虑到以下保护类型,以防止Word文档中的编辑:代码引用取自

  • wdAllowOnlyComments
  • wdAllowOnlyFormFields
  • wdAllowOnlyReading
  • WdAllown版本
  • WDN保护

以下是您可以根据保护

考虑的代码示例
oDocument.Protect(WdProtectionType.wdAllowOnlyReading,vbNull,"password")

它的“给我”错误:“New”不能在接口上使用。那么
ProtectedViewWindows
是一个接口而不是类。您需要找到一个实现接口
ProtectedViewWindows
的类,并创建该类的对象。您确定您的问题与VB.net有关吗?我在网上找到的例子似乎是指VBA。你的最后两个答案链接到同一个网站。虽然这本身并不坏,但它意味着你可能以某种方式与该网站有关联。如果你与该网站有关联,那么你需要在你链接到该网站的帖子中披露。请看:、和。