• 利用EPX Studio将C/S程序转成B/S的方法详解(在线模块方式)


    采用 EPX 的在线模块,是最简单的方法,包括实现简单,客户端不需任何设置,客户使用就简单。
    1. 设置服务器端参数(EPServer)

    1.1 在服务配置工具选项卡中,设置服务项中的名称,路径,激活,及标题,点击确定按钮生效。

     

    1.2 在浏览器中输入 http://127.0.0.1:19221/?Command=test(端口号为配置的端口号),测试 EPServer 是否配置正确; 

     2. 建立 EPX 在线模块项目

    2.1 文件----新建应用,选择“EPX 内置在线模块(有窗口)”选项:
    路径与第一步服务器配置的路径一致,工程名称与第一步配置的服务名称一致,并点确定保存。

     2.2 在设置的工程目录下会生成程序文件

    3.打包C/S程序

    3.1 在EPX Studio IDE中拖放控件TExcelPanelX放到设计器上,并设置Align属性为alClient

    3.2 在implementation  VAR下增加EPI: IExecuteProgramInterfaceDisp; // 增加这一行

    implementation
    
    var Document_: DispHTMLDocument;     
        Window_: DispHTMLWindow2;       
        EPX: IExcelPanelXDisp;
        EPI: IExecuteProgramInterfaceDisp; // 增加这一行

     

    3.3 在 Form1 上双击 OnShow 事件,代码如下: 

     1 procedure TF1394770156.FormShow(Sender: TObject);
     2 begin
     3   EPI := this.newEPI;
     4   EPX := ExcelPanelX1.OleObject;
     5   // 将 *,exe 替换成你自己的 CS 的 exe 文件的执行文件名
     6   EPX.KillProcess('IPBOOK.exe'); //杀掉以前运行的进程
     7   // ExecuteProgramInExcelPanel 的参数说明:
     8   // 第一个参数,是你的 CS 的 exe 文件的执行文件名
     9   // 第二个参数,是你的 CS 的 exe 文件的类名
    10   // 第三个参数,是你的 CS 的 exe 文件的 Caption 值
    11   // 窗口类名与标题可以使用 EPX 开发环境“工具 – 窗口探测工具”菜单项进行获取
    13   // 实现对 CS 程序的托管
    14   EPX.ExecuteProgramInExcelPanel('IPBOOKIPBOOK.exe', 
    15   'TForm1',
    16   'IPBook 正式注册版 (超级网络邻居)');
    17 end;

    3.4 在 Form1 上双击 OnClose 事件,代码如下: 

    1 procedure TF1394770156.FormClose(Sender: TObject; var Action: TCloseAction);
    2 begin
    3   EPI.TerminateExecuteProcess; // 终止托管
    4   EPX.FreeMe;
    5 end;

     4. 将 CS 主程序拷贝到 WebRoot 目录

      将要编译的exe文件及其调用的 dll 文件拷贝到第一步所设置的WebRoot目录下,拷贝时,保持 CS 运行时的目录层次结构;

    5. 编译在线程序 
      5.1 为了减少客户端的使用难度,将exe 文件及其调用的dll 文件,全部打包到 dll 中去;编译时,要选择 Dll(EP)格式;

      5.2 选择工程--编译工程,添加需要转换的资源文件,选择DLL(EP)格式,然后点击编译按钮。

    6.通过浏览器访问

    6.1 直接访问在线模块

      编译dll文件后,可以通过在线模块的方式打开转换的程序,直接在浏览量里输入http://127.0.0.1:19221/WebRoot.epx.html(服务器IP+端口号+模块名.exp.html)方式访问。

    6.2 通过建立index.html方式访问

    特别注意事项:
    6.2.1 codebase="/ep.cab#version=6,2015,5,1",是实现客户端自动下载 ep.cab,并自动安装 epx.ocx。如果有新的 EPX.OCX 版本,则修改 version=6,2015,5,1 值(从开发环境可以获取到版本号),就可以实现自动更新。
    6.2.2 <object 。。。 > </object>这个格式,实现了 IE6 以上版本的正常显示,一定要将其设置在一行,不能分多行,否则IE6 不支持;
    6.2.3 EPX.OnlineModule=location.protocol + "//" + location.host + "/Test.dll"; //后面的test.dll是编译后的文件名

     1 <html>
     2 <body style="margin:0px;">
     3 <object id="EPX" codebase="/ep.cab#version=6,2015,5,1"classid="clsid:6181920C-EAF0-4FAF-8A12-67513E592439" style="100%;height:100%;">&nbsp;</object>
     4 </body>
     5 <script language="javascript">
     6 window.onload=function(){
     7     EPX.OnlineModule=location.protocol+"//"+
     8     location.host + "/WEBROOT.dll";
     9 };
    10 window.onunload=function(){
    11     EPX.FreeMe();
    12 };
    13 </script>
    14 </html>

    将上面的内容保存成一个 index.html 文件

    7. 拷贝 ep.cab 到 WebRoot目录

    将开发环境下C:Program Files (x86)ePx Studio 7.2inWebSignep.cab拷贝到WebRoot目录下,以便客户端能实现自动下载和安装EPX.OCX;

    8. 执行 BS 程序
    在 IE 浏览器上执行 http://127.0.0.1:19221/index.html,进行 BS 测试; 

    9. 删除 CS 程序
    测试正常后,可以将开发环境的 WebRoot 目录下的 IPBOOK文件夹及其调用的 dll 文件全部删除

    10.部署到其它服务器

    10.1. 将 开 发 环 境 下 的 C:Program Files (x86)ePx Studio7.2EPServer 目录,整个拷贝到要部署的目标服务器,启动EPServer,配置 WebRoot 参数,在要部署的目标机器上,用http://127.0.0.1:19201/?Command=test 测试 EPServer 是否正确;
    10.2. 将本例中的 D:Study04 下的下列文件,拷贝到目标服务器的 WebRoot 下:ep.cab、index.html、Test.dll
    10.3. 在 目 标 服 务 器 的 IE 浏 览 器 上 执 行 http://127.0.0.1:19201/index.html,进行 BS 测试
    10.4. 在其它客户端的 IE 浏览器上执行 http://服务器 IP 地址:19201/index.html,进行 BS 测试。
    10.5. 打开IE浏览图--设置--Internet选项--高级--允许活动内容在“我的电脑”的文件中运行 打勾

    11.案例截图

  • 相关阅读:
    遇到swiper高度问题
    overflow
    transition过渡规定慢速开始,然后变快,然后慢速结束的过渡效果(cubic-bezier(0.25,0.1,0.25,1))。
    【记录一个问题】thinkpad x1笔记本,安装ubuntu 16后,拔掉U盘,总是启动到windows,无法启动到ubuntu
    【记录一个问题】笔记本ThinkPad X1-Extreme安装ubuntu 18后,更新nvidia显卡驱动后出现显示问题,无法再登录
    golang gin框架中实现一个简单的不是特别精确的秒级限流器
    【解决了一个小问题】golang中引用一个路径较长的库,导致goland中出现"module contains a go.mod file, so major version must be compatible: should be v0 or v1, not v2"
    【解决了一个小问题】golang samara的kafka客户端中使用错误版本号导致初始化失败
    【解决了一个小问题】golang xorm中使用where id in (xxx),没办法使用参数替换
    【记录一个问题】golangci-lint.exe中,盘符大写就会执行出错
  • 原文地址:https://www.cnblogs.com/xenli/p/12511050.html
Copyright © 2020-2023  润新知