一个C/S程序中包含一个Web浏览器,CS和web页面各自负责不同的工作,但是可以让这两者之间通信吗?比如我在Web中按下一个按纽,这个事件可以被B/S捕捉到吗?

解决方案 »

  1.   

    不对,问错了,如果我在Web中单击某个按纽的事件可以被C/S捕捉到吗?
      

  2.   

    C/S 的事件到B/S还算容易,只要定向网址就可以了
    但是从B/S到C/S 就难了,我现在只能尽量避免从B/S到C/S的事件触发
    尽量避免两者见数据的交换
      

  3.   

    http://www.comecode.com/edu/webtech/net/control/2006/200606151661.html
      

  4.   

    一个系统内的两个进程(c/s的winform窗体)可以通过消息通讯,楼主说的c/s与 b/s如果是一个系统的两个进程,应该也可以通过消息通讯.事件的捕捉:可以通过写监听服务解决.
      

  5.   

    关注一下,个人也是认为和C/S 的事件到B/S应该比较可行,而B/S要到C/S那可能有些麻烦
      

  6.   

    捕捉浏览器的动作很难吧,估计要深入研究webbrowser控件
      

  7.   

    捕捉浏览器的动作,通过ACTIVE X,可以很轻易地办到包括右键、前进后退、鼠标所处位置上的元素一切尽在IHTMLDocument2和相关指针上
      

  8.   

    可以,通过IE相关的COM接口来处理,eg. IHTMLDocument
      

  9.   

    如果是嵌套WebBrowser...而且只是想让C/S知道B/S中的点击事件, 或传字符串. 还是比较容易的...我有个比较变态的方法...
      

  10.   

    可以的。我用.NETRemoting,B/S到cs,就调用CS的对象;CS到BS就是从CS广播。可以实现网页喝桌面程序聊天。
      

  11.   

    private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                if (this.webBrowser.Document != null)
                {
                    HtmlElement ok = this.webBrowser.Document.GetElementById("ButtonOK");
                    if (ok != null)
                    {
                        ok.Click += new HtmlElementEventHandler(ButtonOK_Click);
                    }
                    HtmlElement cancel = this.webBrowser.Document.GetElementById("ButtonCancel");
                    if (cancel != null)
                    {
                        cancel.Click += new HtmlElementEventHandler(ButtonCancel_Click);
                    }
                }
            }
      

  12.   

    变态的方法是用FireFox的源码来处理,咔咔
      

  13.   

    应该是可以的,因为b/s存在服务端,而c/s也存在服务端,只要在服务端之间做好信息沟通,b/s和c/s就可以联姻了。
      

  14.   

    一个C/S程序中包含一个Web浏览器,CS和web页面各自负责不同的工作,但是可以让这两者之间通信吗?这个任务太简单了,实现起来太容易了,想不想知道?哈哈哈哈,你去看看WebBrowser.ObjectForScripting干吗用的,怎么用的。如果还是不明白,开贴给俺500分。俺把我以前的源代码给你一份。
      

  15.   

    楼上的几位又是中间件、又是WebService,废话都说尽了,你们是不是做PM的?
      

  16.   

    难度很大!
    实现东西多!
    主要还是URL服务请求问题!
    一般开设8080或80---
    C/S--1055--
    URL直接访问1055,然后设置REQUEST!这样就能访问服务了!
        private static StringBuffer doDialogPrint(String aStrRequestUrl, String aStrFileName)
        {
            StringBuffer strBRetHtml = new StringBuffer("");
            if(aStrRequestUrl == null || "".equals(aStrRequestUrl))
            {
                return strBRetHtml;
            }
            String strClsID = "13374F9E-567A-4A22-BD52-F30D33AE64D1";
            String strArrFileName[] = aStrFileName.split(":");
            int intFileCnt = strArrFileName.length;
            String strSvfClientVer = ServerProperties.getProperty("server.svf-client.version");
            if(strSvfClientVer != null && !"".equals(strSvfClientVer))
            {
                strSvfClientVer = (new StringBuilder()).append("#Version=").append(strSvfClientVer).toString();
            } else
            {
                strSvfClientVer = "";
            }
            String strExtendPath = ServerProperties.getProperty("server.output.extend-path");
            for(int i = 0; i < intFileCnt; i++)
            {
                strBRetHtml.append((new StringBuilder()).append("<OBJECT ID=\"SVF for Web/Client\" WIDTH=0 HEIGHT=0 CLASSID=\"CLSID:").append(strClsID).append("\" CODEBASE=\"").append(aStrRequestUrl).append("/SvfWebClient/XSvfWeb.cab").append(strSvfClientVer).append("\">").toString());
                strBRetHtml.append((new StringBuilder()).append("<PARAM NAME=\"Raw\" VALUE=\"").append(aStrRequestUrl).append(strExtendPath).append("/").append(strArrFileName[i]).append("\">").toString());
                strBRetHtml.append("<PARAM NAME=\"DocName\" VALUE=\"SVF for WEB/Client\">");
                strBRetHtml.append("</OBJECT>");
            }        return strBRetHtml;
        }要干的事情太多,小项目基本也很少有人这么干
      

  17.   

    我就是用WebServices来实现这个功能的
      

  18.   

    非常感谢大家的关注,正在解决
    我们是做呼叫中心的,一般的呼叫中心都是单一的
    但是有的客户需要分散的呼叫系统,可以节省长途话费
    这样问题就出来了,所有的座席人员是必须使用同一个数据库
    每个座席又有不同的语音服务器控制,所以难就难在这里的
    因为我们要实现软拨号,所以如果这个问题解决不了
    我们就要用笨的方法来实现了:先将要拨打的号码提交到服务器,写到数据库,IVR再定时读取
    这样会浪费很多时间~~
    如果重要个问题能解决了就太好了
      

  19.   

    不理解楼主的问题跟你的需求有什么关系看需求没有发现需要B/S和C/S交互的地方