Foxtable(狐表)用户栏目专家坐堂 → [求助]如何让word文档 在webbrowse中只读显示,并且没有菜单、功能区工具栏?


  共有3265人关注过本帖树形打印复制链接

主题:[求助]如何让word文档 在webbrowse中只读显示,并且没有菜单、功能区工具栏?

帅哥哟,离线,有人找我吗?
有点甜
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/8 12:53:00 [显示全部帖子]

报什么错?下面代码我测试没问题

 

    Dim oDocument As object = axWebBrowser.Gettype().InvokeMember("Document", System.Reflection.BindingFlags.GetProperty, Nothing, axWebBrowser, Nothing)
    Dim oApplication As object = axWebBrowser.Gettype().InvokeMember("Application", System.Reflection.BindingFlags.GetProperty, Nothing, oDocument, Nothing)
    oDocument.Protect (Password:="123456", NoReset:=False, Type:= _
    MsWord.WdProtectionType.wdAllowOnlyReading, UseIRM:=False, EnforceStyleLock:=False)
    oDocument.saved = True
    vars("doc") = oDocument


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/8 13:44:00 [显示全部帖子]

 上传具体实例例子测试。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/8 14:46:00 [显示全部帖子]

Dim web As Windows.Forms.WebBrowser
web = e.Form.Controls("WebBrowser1").baseControl
AddHandler web.DocumentCompleted,addressof WebBrowser1_DocumentCompleted
web.ScriptErrorsSuppressed = True  '发生角本错误后继续运行
axWebBrowser = Nothing
e.Form.Controls("WebBrowser1").OfficeToolBar = False
Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Select Case dlg.FileName.SubString(dlg.FileName.LastIndexOf(".")+1,dlg.FileName.Length-dlg.FileName.LastIndexOf(".")-1)
        Case "doc","docx"
            web.Navigate(dlg.FileName)
            Do until axWebBrowser IsNot Nothing
                Application.DoEvents
            Loop

            Dim oDocument As object = axWebBrowser.Gettype().InvokeMember("Document", System.Reflection.BindingFlags.GetProperty, Nothing, axWebBrowser, Nothing)
            Dim oApplication As object = axWebBrowser.Gettype().InvokeMember("Application", System.Reflection.BindingFlags.GetProperty, Nothing, oDocument, Nothing)
            oApplication.ActiveWindow.DocumentMap = False
            oDocument.Protect (Password:="123456", NoReset:=False, Type:= _
            MsWord.WdProtectionType.wdAllowOnlyReading, UseIRM:=False, EnforceStyleLock:=False)
            oDocument.saved = True
            vars("doc") = oDocument
           
           
            Dim refmissing As [object] =  System.Reflection.Missing.Value
            Dim args As Object() = New Object(3){}
            args(0) = 24
            args(1) = 2
            args(2) = refmissing
            args(3) = refmissing
            axWebBrowser.[Gettype]().InvokeMember("ExecWB",256,Nothing,axWebBrowser,args)
        Case "xls","xlsx"
            web.Navigate(dlg.FileName)
        Case Else
            web.Navigate(dlg.FileName)
    End Select
End If


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/8 16:55:00 [显示全部帖子]

        Case "xls","xlsx"
            web.Navigate(dlg.FileName)
           
            Do until axWebBrowser IsNot Nothing
                Application.DoEvents
            Loop
            Dim wb As object = axWebBrowser.Gettype().InvokeMember("Document", System.Reflection.BindingFlags.GetProperty, Nothing, axWebBrowser, Nothing)
            Dim app As object = axWebBrowser.Gettype().InvokeMember("Application", System.Reflection.BindingFlags.GetProperty, Nothing, wb, Nothing)
           
            Wb.WorkSheets(1).Protect(Password:="123456", Contents:=True)
           

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/8 17:39:00 [显示全部帖子]

我测试没问题,你关闭项目,多测试几次,就好了。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/11 8:49:00 [显示全部帖子]

1、你可以设置 wb.saved = true 就不会弹出是否保存的窗口;

 

2、别的电脑有问题,应该是没有正确安装MS Office,卸载重装一下看看。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/11 12:02:00 [显示全部帖子]

加上代码

 

            wb.Protect(Structure:=True, Windows:=false)

 

http://www.foxtable.com/webhelp/scr/2121.htm

 


 回到顶部