难题一:在用OLE操作Word时出现"被呼叫方拒绝接受呼叫",这个问题没有规律的出现,不知道和什么有关~
难题二:用SocketConnection做三层时,怎么解决用户是用代理服务器上网的问题(我是用211端口连接的)?

解决方案 »

  1.   

    别人的办法,TRY三次启动
    var
      myWord, myDoc: olevariant;  PathName: string;
    begin
      try
        myWord := CreateOleObject('Word.Application');
      except
        try
          myWord := GetActiveOleObject('Word.Application');
        except
          try
            myWord := GetActiveOleObject('Word.Application');
          except
            MessageDlg('对不起,您没有安装Word 软件!,对不起,您没有安装Word 软件,或者word安装不全!', mtInformation,
              [mbOk], 0);
            abort;
          end;
        end;
      end;
      .....end;
      

  2.   

    to 楼上的 不是启动时出错~~是向Word导数据出错!
      

  3.   

    第二题:如果你能够设置他的代理服务器的话,将目标机器的211端口映射到代理服务器的某一个空闲端口,就可以了。也看你的代理服务器的类型,据我所知,WinRoute是可以作到这一点的。如果没有办法,你就只能舍弃SocketConnection了,用DCom或者基于http的80端口的协议来去做,这是躲避防火墙等的最佳方法了。
      

  4.   

    楼主都说了UP的不给分!还有人来UP!但我也想UP一个,再学习学习,呵呵!
      

  5.   

    弟二个问题的我的方法是使用端口共享具体的解决方法,google太多了
      

  6.   

    "被呼叫方拒绝接受呼叫"这个错误是与word连接有问题才出现的
    你在导数据时用一下Try,如果出问题再连接
      

  7.   

    难题一:在用OLE操作Word时出现"被呼叫方拒绝接受呼叫",这个问题没有规律的出现,不知道和什么有关·································
    和你Delphi中Word的DLL驱动有关1。在你同事的机器上编译一下试试(WORD采用COM模块编写,可能你是注册表中安装/卸载一些软件时有些值错乱了,顺便B4一下微软……)
    2。或者写数据时加Sleep(不能完全解决)
      

  8.   

    to WGYKING(修罗是谁?!)  
    我在写数据时,加了Sleep,正如你说的那样,没太大的用处~你的第一点我觉得很象,要是这样的话是不是就没有方法解决了?
      

  9.   

    基本上是这样
    我没有查相关资料
    到我同事的机器上从新编译一下就可以了
    或者你从新安装WORD/Delphi试试……
      

  10.   

    难题二:用SocketConnection做三层时,怎么解决用户是用代理服务器上网的问题(我是用211端口连接的)?~~~~~~~~~~~~~~~~~~~~~这个问题
    我想说得是
    数据传输采用MIDAS是非常有效率的
    但如你所遇到的问题一样
    在广域网上/实际项目中直接使用是有很多不便的建议:
    1。写一个类似代理服务器的程序提供给用户,其主要功能是转换CLIENT和SERVER的数据传输,如果用户网络环境需通过代理,那么就在共网IP的代理服务器上运行它
    2。通讯模块采用TCP/IP协议自己实现(INDY就很不错),所需的工作就是:转换MIDAS数据包接口,同样的,仍可以很好利用MIDAS良好的数据传输性能