采用 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 事件,代码如下:

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

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

 procedure TF1394770156.FormClose(Sender: TObject; var Action: TCloseAction);
begin
EPI.TerminateExecuteProcess; // 终止托管
EPX.FreeMe;
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是编译后的文件名

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

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

7. 拷贝 ep.cab 到 WebRoot目录

将开发环境下C:\Program Files (x86)\ePx Studio 7.2\bin\WebSign\ep.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.2\EPServer 目录,整个拷贝到要部署的目标服务器,启动EPServer,配置 WebRoot 参数,在要部署的目标机器上,用http://127.0.0.1:19201/?Command=test 测试 EPServer 是否正确;
10.2. 将本例中的 D:\Study\004 下的下列文件,拷贝到目标服务器的 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.案例截图

利用EPX Studio将C/S程序转成B/S的方法详解(在线模块方式)的更多相关文章

  1. Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer 关于Newtonsoft.Json,LINQ to JSON的一个小demo mysql循环插入数据、生成随机数及CONCAT函数 .NET记录-获取外网IP以及判断该IP是属于网通还是电信 Guid的生成和数据修整(去除空格和小写字符)

    Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer   Advanced Installer :Free for 30 da ...

  2. 利用C#实现AOP常见的几种方法详解

    利用C#实现AOP常见的几种方法详解 AOP面向切面编程(Aspect Oriented Programming) 是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术. 下面这篇文章主要 ...

  3. Java生鲜电商平台-APP/小程序接口传输常见的加密算法及详解

    Java生鲜电商平台-APP/小程序接口传输常见的加密算法及详解 说明:Java生鲜电商平台-APP/小程序接口传输常见的加密算法及详解,加密算法,是现在每个软件项目里必须用到的内容. 广泛应用在包括 ...

  4. 在ASP.NET 5应用程序中的跨域请求功能详解

    在ASP.NET 5应用程序中的跨域请求功能详解 浏览器安全阻止了一个网页中向另外一个域提交请求,这个限制叫做同域策咯(same-origin policy),这组织了一个恶意网站从另外一个网站读取敏 ...

  5. 解决C#程序只允许运行一个实例的几种方法详解

    解决C#程序只允许运行一个实例的几种方法详解 本篇文章是对C#中程序只允许运行一个实例的几种方法进行了详细的分析介绍,需要的朋友参考下 本文和大家讲一下如何使用C#来创建系统中只能有该程序的一个实例运 ...

  6. Java程序员的必备知识-类加载机制详解

    类加载器的概念 类加载器是一个用来加载类文件的类. Java源代码通过javac编译器编译成类文件.然后JVM来执行类文件中的字节码来执行程序.类加载器负责加载文件系统.网络或其他来源的类文件. JV ...

  7. java本地方法如何调用其他程序函数,方法详解

    JNI是Java Native Interface的缩写,中文为JAVA本地调用.从Java 1.1 开始,Java Native Interface (JNI)标准成为java平台的一部分,它允许J ...

  8. PLSQL Developer概念学习系列之登录连接Oracle时出现(没有登录) -PL / SQL Developer:ORA - 12541: TNS :无建听程序的错误解决办法(图文详解)

    不多说,直接上干货! 前期博客 PLSQL Developer概念学习系列之如何正确登录连接上Oracle(图文详解)   如用scott.scott_password进行登录,orcl是全局数据库 ...

  9. 「微信小程序」PHP异步进程async-helper实例详解

    PHP异步进程async-helper实例详解 PHP 的异步进程助手,借助于 AMQP 实现异步执行 PHP 的方法,将一些很耗时.追求高可用.需要重试机制的操作放到异步进程中去执行,将你的 HTT ...

随机推荐

  1. SpringMVC引入CSS等文件

    在默认情况下Spring MVC 拦截了所有请求,所以自己要把静态资源配置起来,IDEA 在Spring-service 配置,eclipse在自己新建的SpringMVC配置文件里配置,如下代码 & ...

  2. GLSL 的各种着色器效果

    Site Defunct 注意!截止到 16/9/2019 ,这个博客已经被搬迁到了 这里 .以后我的东西都会发在那里.拜拜啦! GLSL 很牛逼 Vignette ScanLine Pixelate ...

  3. 最新中文版虚拟机VMware Workstation隆重上市

    vmware虚拟机 在虚拟机软件中VMware Workstation算是一款非常强大较稳定的软件了,今天 VMware Workstation 10.0正式发布了,最让人欣喜的是该版本终于有了简体中 ...

  4. TICA 2019 自动的自动化测试——智能化一站式的API测试服务

    阿里QA导读:新奥集团中台的陈磊为我们打开了AI测试驱动的视野,同时也深入浅出地介绍了如何打造智能化API测试框架.通过陈磊老师的分享,我们看到了AI-DT的无限可能性.以后,AI能不能代替大部分手动 ...

  5. RE模块(正则)

    RE模块和正则表达式 正则表达式 正则就是用来筛选字符串中的特定的内容的(只要是reg...一般情况下都是跟正则有关) re模块与正则表达式之间的关系: 正则表达式不是python独有的 它是一门独立 ...

  6. javascript中的function命名空間與模擬getter、setter

    function的命名空間 在javascript中,function也可以擁有自己的命名空間例如以下這段程式碼: 12345678 function () { return 'I am A';} A ...

  7. 二十一世纪计算 | John Hopcroft:AI革命

    编者按:信息革命的浪潮浩浩汤汤,越来越多的人将注意力转向人工智能,想探索它对人类生产生活所产生的可能影响.人工智能的下一步发展将主要来自深度学习,在这个领域中,更多令人兴奋的话题在等待我们探讨:神经网 ...

  8. Mac系列萎靡 大棒能否敲醒苹果?

    大棒能否敲醒苹果?" title="Mac系列萎靡 大棒能否敲醒苹果?">     iPhone在智能手机市场中的一骑绝尘,不断将苹果推向神坛位置.即使新品更新幅度 ...

  9. 80 remove duplicates from sorted array 2

    | 分类 leetcode  | Follow up for "Remove Duplicates": What if duplicates are allowed at most ...

  10. Swift iOS实现把PCM语音转成MP3格式

    最近折腾了swift的语音录制识别和转码,这块还是比较坑的,由于语音识别的准确度实测大概也就80%左右,所以还是需要上传录音文件啊.首先是用讯飞语音SDK实现语音录制和识别(语音听写),第一个坑是讯飞 ...