用InstallShield做MO打包 控件注册及MO字体安装
任何系统开发完毕后得打包交付给市场和用户,最近很多朋友问到MO打包的问题.的确,MO开发属于二次开发,打包有些细节得注意.比如MO控件注册安装,MO字体安装,如何让系统支持更多的图形格式等等.
这个打包程序是用InstallShield6.22来完成的,以MO2.2为例,今天有关InstallShield6.22的一些应用还请给位自行掌握,在这里我就不再罗嗦了,因为使用起来比较简单。
首先我们来看看MO2.2的一些组件文件,它的组件文件最常见的就有两种,一种是*.ocx一种是*.dll,当然还有其它格式的,只是这两种是开发所必须,如果你想让你的MO2.2程序能够正常运行的话。
其实这两种文件在InstallShield6.22中有可以分为两种,一种是需要注册的,一种是不需要注册的。
下面是需要注册的一些文件 ①:Mo20.ocx,MO21Legend.ocx,MO21ScaleBar.ocx,weblink.ocx,MemTable21.dll,MemTableServer.dll,Street20.dll,Vpf20.dll,InfoTable20.dll,JetTable20.dll,ADOTable20.dll,aiimage20.dll,CAD20.dll,Coverage20.dll,MoImageCat.dll,MoSde81.dll,MoSde82.dll,MoSde83.dll,MoSde302.dll,MoMrSID.dll,MoSde80.dll,OdbcTbl20.dll,Shape20.dll
下面是那些不需要注册的文件 ②:dforrt.dll,efileio.dll,elib.dll,ergxlib.dll,ethrlib.dll,ISO8211.dll,libtiff.dll,mobase.dll,Moe.dll,mofeat.dll,mogridio.dll,pe80.dll,Pe81.dll,pe82.dll,pe83.dll,Sde30.dll,Sde80.dll,Sde81.dll,Sde82.dll,Sde83.dll,Sg80.dll,Sg81.dll,Sg82.dll,Sg83.dll,ShapeLT20.dll,AFLT20.dll,AiSetup.dll,CADE.dll,CADPI.dll,pe.dll,Sg.dll,AF20.dll,mtch.dll,EDGE32.dll,sdeora8isrvr81.dll,sdeora8isrvr82.dll,sdeora9isrvr82.dll,sdesqlsrvr81.dll,sdesqlsrvr82.dll,Mo20.lic
以上这些文件,均可在安装了MO2.2的机子的X:\Program Files\Common Files\ESRI(X代表当前操作系统所在的目录)目录下找到。下面就让我们行动起来吧,请看一下步骤:
1、在InstallShield6.22的“File Groups”视图下新建两个文件组“MOOCX”和“MODLL”,在前一个文件组中插入文件 ①,后一个文件组中放入文件②。
2、在“File Groups”视图中选中“MOOCX”文件组,在右边将它的“Sel-Registered”值设为“Yes”,文件组“MODLL”正好相反设为“NO”。
3、需要特别注意的一点那就是,一定要将 “MOOCX”和“MODLL” 文件组的“Destination”值设置为相同的目录(比如TARGETDIR),不然就不能够正确的完成MO2.2的注册。
这样就完成了MO2.2基本控件的注册安装问题简单吧,一句代码都不用写。
接下来我们就来看看MO2.2字体的安装吧,看过好多例子都是通过写注册表的启动项,然后重启,以此来达到字体的安装。就我个人认为这种办法实在是麻烦,而且成功的机率不是很高。
在这里我给大家介绍一种,通过给操作系统发消息的方发法来完成MO2.2字体的安装。这个方法就稍微的麻烦一些了,需通过写脚本来实现,其实也不难,下面就看一下据体操作吧。
1、 现在把InstallShield6.22切换到“scripts”视图下,在它右面的编辑框中的
“// your DLL function prototypes”的下一行添加下面一行代码:
prototype number GDI32.AddFontResource(BYREF STRING);
并在“// your global variables”的下一行声明两个常量:
#define HWND_BROADCAST 0xFFFF
#define WM_FONTCHANGE 0x001D
2、 然后在“// your script function prototypes”的下一行声明一个函数:
export prototype number InstallFonts(string szFontsName, sting szFontsFiles);
并在脚本最后将这个自定义函数的实现完成,具体代码如下:
function number InstallFonts(szFontName, szFontFiles)
string szKey;
Tags:MO打包 控件注册 InstallShield 注册
最新文章
- 教你利用Google Earth API自动化谷 [03-08]
- ArcGIS Engine实现添加图名比例尺指 [03-03]
- Google Earth客户端 基于Servlet的 [06-04]
- ArcObjects 3D开发简介 ArcScene构 [03-25]
- ArcIMS二次开发介绍 ArcMap服务 Ar [04-24]
- GIS的开发模式以及分析比较 宿主型 [04-24]
- 如何进行ArcIMS的二次开发 基于IMS [04-24]
- 什么是组件式GIS及组件式GIS开发平 [04-02]
- 地理信息系统软件开发OpenSource的 [03-31]
- SuperMap IS Java ——基于Java EE [03-30]
推荐文章


热点文章
用VC读取DXF格式文件的原理及代码
GIS二次开发各种方式对比和Activ
ArcEngine中使用上下左右键移动地
C#中调用MapX方法实例及代码剖析
矢量地图缩放、旋转、平移操作的
MapX在VC++中实现军用标图系统的
MapX应用程序发布和打包过程及注
ARC命令说用说明及详细讲解
MapX教程及基本编程应用实例
如何在MapObject下把ActiveX控件
MapX教程之数据库绑定方法过程及
用C#根据经纬度求两点间距离的函
基于.NET平台的MapX开发方法及实
MapInfo
基于MapX的GIS系统动态操作原理及
用VB和MapX实现各种专题图的示例
如何在VB下用MapObject实现流场显
MapX如何在图层上添加一个点的代
用VB实现MapX移屏测距功能原理及
AO的Display对象简介及应用代码实
VC下用MapX实现任何比例尺打印功
MapX开发疑问之坐标问题讲解
组件开发之MapXtreme for window
MapX图层样式替换的VB源代码
在VC++中嵌入MapX集成二次开发的
教你利用Google Earth API自动化
ArcGIS Engine实现添加图名比例尺
Google Earth客户端 基于Servlet
ArcObjects 3D开发简介 ArcScene
ArcIMS二次开发介绍 ArcMap服务

