我在程序中使用:CppWebBrowser1->Navigate(L"d:\\new.doc");打开一个WORD文档。
但是打开的WORD文档用户可以进行修改,请问是否有什么方法能够让用户只能查看而不能修改WORD文档?另外想请问一下,使用:OleContainer1->CreateLinkToFile("c:\\test.doc",false);为什么只能打开文档的第一页?请DELPHI的朋友帮帮忙,谢谢啦!

解决方案 »

  1.   

    问题是可以保存呀,用CppWebBrowser1->Navigate(L"d:\\new.doc");打开一个文件,如果用户进行了修改,CppWebBrowser1->Navigate()在加载新的文件时会询问是否保存本次的修改。
      

  2.   

    你先用word的文档保护功能,使文档不能编辑,然后再运用vba编程把相应的菜单和按钮都给屏蔽调(或者干脆屏蔽调所有的菜单和按钮),让word程序启动时就运行这样的操作,这样就能实现你所说的功能的,程序关闭时要恢复相应的操作,以免正常的word文档也无法操作!防止拷贝我还没有实现,正在找。下面是我写的代码,最近我正好要做这样一个程序。拿来共享!
    ' 打开程序时运行
    Sub AutoOpen()
    Dim flag As Boolean
    Dim cb As CommandBar
    flag = True
    For Each cb In CommandBars  '屏蔽右键
        If cb.Type = msoBarTypePopup Then cb.Enabled = flag
    Next cb
    With Application
        .CommandBars("file").Enabled = flag '屏蔽菜单
        .CommandBars("edit").Enabled = flag
        .CommandBars("view").Enabled = flag
        .CommandBars("insert").Enabled = flag
        .CommandBars("format").Enabled = flag
        .CommandBars("tools").Enabled = flag
        .CommandBars("table").Enabled = flag
        .CommandBars("window").Enabled = flag
        .CommandBars("help").Enabled = flag
        .CommandBars("Standard").Enabled = flag '屏蔽常用按钮
        .CommandBars("Formatting").Enabled = flag '屏蔽格式按钮
    End With
    '保护文档
    ActiveDocument.Protect Password:="123", NoReset:=False, Type:= _
            wdAllowOnlyReading, UseIRM:=False, EnforceStyleLock:=False
    End Sub程序关闭时运行过程
    Sub AutoClose()End Sub
    把上面的代码添加进取,flag变量取true就行了。另,保护文档那段代码可不必加到自动运行过程里,可先设置。
      

  3.   

    设置webbrowser的silent属性为true,就不会提示保存了
      

  4.   

    silent设置为true不起作用,我看错了用这个吧(不过是用delphi的,我这里没有bcb)unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, OleCtrls, SHDocVw, ExtCtrls;type
      TForm1 = class(TForm)
        btn1: TButton;
        btn2: TButton;
        procedure btn1Click(Sender: TObject);
        procedure btn2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
        wb2:TWebBrowser;
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.btn1Click(Sender: TObject);
    begin
      if Assigned(wb2) then
        FreeAndNil(wb2);
      wb2:=TWebBrowser.Create(Self);
      wb2.Visible:=True;
      wb2.Top:=10;
      wb2.Left:=10;
      wb2.Width:=300;
      wb2.Height:=200;
      //wb2.Parent:=Self.;
      wb2.ParentWindow:=Self.Handle;
      wb2.Navigate('E:\Projects\\bde.doc');
    end;procedure TForm1.btn2Click(Sender: TObject);
    begin
      if Assigned(wb2) then
        FreeAndNil(wb2);
      wb2:=TWebBrowser.Create(Self);
      wb2.Visible:=True;
      wb2.Top:=10;
      wb2.Left:=10;
      wb2.Width:=300;
      wb2.Height:=200;
      //wb2.Parent:=Self.;
      wb2.ParentWindow:=Self.Handle;
      wb2.Navigate('E:\Projects\\abc.doc');
    end;end.每次都动态创建
      

  5.   

    sunmingdong: 还没有测试您的代码,但先表示 非常感谢!