文档详情

制作MapObjects安装程序

靓***
实名认证
店铺
2025-03-16
DOCX
78.25KB
约4页
制作MapObjects安装程序_第1页
1/4
制作MapObjects安装程序_第2页
2/4
制作MapObjects安装程序_第3页
3/4

MapObjects 安装程序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”视图中选中“ MOOC X文件组,在右边将它的“ Sel - Registered ”值设 为“Yes”,文彳^组“ MODLL正好相反设为“ NO3、需要特别注意的一点那就是,一定要将 “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 0x001D2、 然后在“ // your script function prototypes ”的下一行声明一个函数:export prototype number InstallFonts(string szFontsName, sting szFontsFiles);并在脚本最后将这个自定义函数的实现完成,具体代码如下:function number InstallFonts(szFontName, szFontFiles) string szKey;beginszKey = "Software\\Microsoft\\Windows"; if (SYSINFO.WINNT.bWinNT) then szKey = szKey + " NT\\CurrentVersion\\Fonts"; elseif (SYSINFO.WIN9X.bWin98) then szKey = szKey + "\\CurrentVersion\\Fonts";endif;RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);RegDBSetKeyValueEx (szKey,szFontName,REGDB_STRING,szFontFiles,-1); AddFontResource(szFontFiles);// 向操作系统发送安装字体的消息SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0); end;这样整个安装字体的函数就全部写完了。

3、 首先,在 InstallShield6.22 的 “File Groups ” 视图下新建一个 “ MOFonts 文件组, 将 它 的 “ Destination ” 值 设 置 为 “Fonsts” , 在 安 装 了 MO2.2 的 机 子 上 的“Fonts”目录下,把MO2.2的所有字体都找到放到“ MOFonts文件组中接下来就是适时 的调用 InstallFonts 这个函数进行字体的安装了在 OnFirstUIAfter 函数中以下面的方法进行调用 InstallFonts 就可以了,具体 操作:InstallFonts("ESRI Cartography (TrueType)","Esri_1.ttf");InstallFonts("ESRI Environmental & Icons (TrueType)","Esri_2.ttf");InstallFonts("ESRI Geometric Symbols (TrueType)","Esri_3.ttf"); 其它的字体也可以以此来完成安装最后,还要说的就是,有的朋友要用到 MO2.2能够支持的更多的图形格式的话,只是打包上面所列出的那些文件是远远不够的。

为了能够让你的程序支持更多的 图形格式,建议你把X:\Program Files\Common Files\ESRI\MO_image (X代表当前操作系统所在的目录)整个目 录都放在“MODLL这个组件下,最好不改变它的目录结构,当然为了节省空间你可以删掉 里面的pdf文件这样以来你就可以在你的程序中处理所有 MO2.2所能够支持的图形格式了说明:文中出现的①、②分别代表了需要注册和不需要注册的两种文件(注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供 参考可复制、编制,期待你的好评与关注) 。

下载提示
相关文档
正为您匹配相似的精品文档