以现在wordapplication 控件方式 打开word 文档 总是停在那里不动 在connect这一步就进行不下去了
请问 哪位高人能给出可行的解决办法

解决方案 »

  1.   

    用,shell()方法去打开就可以了!
      

  2.   

    procedure OpenOutExeP(HD:THandle; path: string);
    Var
    HWndCalculator:HWnd;
    Begin
    //打开指定的文件;
    HWndCalculator:=windows.FindWindow(nil,pchar(path));
    if HwndCalculator=0 then
     Shellexecute(HD,'open',Pchar(path),'',nil,sw_shownormal);
    end;procedure CloseoutExeP(path: string);
    Var
    HWndCalculator:HWnd;
    Begin
    //查找指定的文件是否被打开;
    HWndCalculator:=FindWindow(nil,pchar(path));
    if HwndCalculator<>0 then
    SendMessage(HwndCalculator,WM_CLOSE,0,0);
    end;
      

  3.   

    你的进程中可能已经有了winword.exe进程 关闭它!!!
    再送你一段相关代码
    procedure TRocMemo.LoadFromField(Field: Tfield);
    var
      Str:oleVariant;
    begin
        self.Clear;
        if not field.IsBlob then
        begin
          self.Text:=Field.AsString;
          exit;
        end;
        Str:=extractfilepath(application.EXEName)+'temp.doc';
        try
            FWordApp.Connect;
            TBlobField(field).SaveToFile(extractfilepath(application.EXEName)+'temp.doc');
            FWordDoc.ConnectTo(FWordApp.Documents.Open(Str,EmptyParam,EmptyParam,EmptyParam,
                                                         EmptyParam,EmptyParam,EmptyParam,
                                                         EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam));
            FWordApp.Selection.WholeStory;
            FWordApp.Selection.Copy;
            PasteFromClipboard;
            ClearSpaceAndNullRow;
        finally
          FWordDoc.close;
          deleteFile(Str);
        end;
    end;
      

  4.   

    有可能是调试时进程中有Word没有被关闭,没有界面的那种,从任务管理器里关掉。
    还有如果只是要打开一个Word文档,没必要用OLE,Shell API函数就行了
    uses
     ShellApi;ShellExecute(Handle, 'open', 'xxx.doc', nil, nil, SW_SHOWNORMAL);
      

  5.   

    楼上的要注意,如果该文件已经在后台进程中加载了,你再用shell打开就会报错!
      

  6.   

    强烈建议楼主用Twebbrower,速度很快,不另打开WORD