《制作MapObjects安裝程序》由會員分享,可在線閱讀,更多相關《制作MapObjects安裝程序(4頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、MapObjects 安裝程序
MO2.2的一些組件文件,它的組件文件最常見的就有兩種,一種是 *ocx 一種是*.dll ,當然 還有其它格式的,只是這兩種是開發(fā)所必須,如果你想讓你的MO2.2程序能夠正常運行的話。
其實這兩種文件在 InstallShield6.22 中有可以分為兩種,一種是需要注冊的,一種是不需
要注冊的。
①下面是需要注冊的一些文件:
Mo20.ocx , MO21Legend.ocx, MO21ScaleBar.ocx , weblink.ocx , MemTable21.dll , MemTableServer.dll , Street20.dll ,
2、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 , ergx
3、lib.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
4、 , 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代 表當前操作系統(tǒng)所在的目錄)目錄下找到。
1、在 InstallShield6.22 的 “File Groups”
5、視圖下新建兩個文件組 “ MOOCX和 “MODLL , 在前一個文件組中插入文件 ①,后一個文件組中放入文件②。
2、在“File Groups”視圖中選中“ MOOC X文件組,在右邊將它的“ Sel - Registered ”值設 為“Yes”,文彳^組“ MODLL正好相反設為“ NO。
3、需要特別注意的一點那就是,一定要將 “MOOCX和“MODLL文件組的“ Destination ”
值設置為相同的目錄(比如TARGETDIR)不然就不能夠正確的完成 MO2.2的注冊。
這樣就完成了 MO2.2基本控件的注冊安裝問題簡單吧,一句代碼都不用寫。
接下來我們就來看看 M
6、O2.2字體的安裝吧,看過好多例子都是通過寫注冊表的啟動項,然后 重啟,以此來達到字體的安裝。就我個人認為這種辦法實在是麻煩,而且成功的機率不是很 高。
在這里我給大家介紹一種,通過給操作系統(tǒng)發(fā)消息的方發(fā)法來完成 MO2.2字體的安裝。這個
方法就稍微的麻煩一些了,需通過寫腳本來實現(xiàn),其實也不難,下面就看一下?lián)w操作吧。
1、 現(xiàn)在把 InstallShield6.22 切換到“ Scripts ”視圖下,在它右面的編輯框中的
“// your DLL function prototypes ”的下一行添加下面一行代碼:
prototype number GDI32.AddFontR
7、esource(BYREF STRING); 并在“ // your global variables ”的下一行聲明兩個常量:
#define HWND_BROADCAST 0xFFFF
#define WM_FONTCHANGE 0x001D
2、 然后在“ // your script function prototypes ”的下一行聲明一個函數(shù):
export prototype number InstallFonts(string szFontsName, sting szFontsFiles);
并在腳本最后將這個自定義函數(shù)的實現(xiàn)完成,具體代碼如下:
function
8、 number InstallFonts(szFontName, szFontFiles) string szKey;
begin
szKey = "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_LOC
9、AL_MACHINE);
RegDBSetKeyValueEx (szKey,szFontName,REGDB_STRING,szFontFiles,-1); AddFontResource(szFontFiles);
// 向操作系統(tǒng)發(fā)送安裝字體的消息
SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0); end;
這樣整個安裝字體的函數(shù)就全部寫完了。
3、 首先,在 InstallShield6.22 的 “File Groups ” 視圖下新建一個 “ MOFonts 文件組, 將 它 的 “ Destination ” 值 設 置 為
10、“Fonsts” , 在 安 裝 了 MO2.2 的 機 子 上 的
“Fonts”目錄下,把MO2.2的所有字體都找到放到“ MOFonts文件組中。接下來就是適時 的調(diào)用 InstallFonts 這個函數(shù)進行字體的安裝了。在 OnFirstUIAfter 函數(shù)中以下面的方法
進行調(diào)用 InstallFonts 就可以了,具體 操作:
InstallFonts("ESRI Cartography (TrueType)","Esri_1.ttf");
InstallFonts("ESRI Environmental & Icons (TrueType)","Esri_
11、2.ttf");
InstallFonts("ESRI Geometric Symbols (TrueType)","Esri_3.ttf"); 其它的字體也可以以此來完成安裝。
最后,還要說的就是,有的朋友要用到 MO2.2能夠支持的更多的圖形格式的話,只是打包上
面所列出的那些文件是遠遠不夠的。為了能夠讓你的程序支持更多的 圖形格式,建議你把
X:\Program Files\Common Files\ESRI\MO_image (X代表當前操作系統(tǒng)所在的目錄)整個目 錄都放在“MODLL這個組件下,最好不改變它的目錄結構,當然為了節(jié)省空間你可以刪掉 里面的pdf文件。這樣以來你就可以在你的程序中處理所有 MO2.2所能夠支持的圖形格式了。
說明:文中出現(xiàn)的
①、②分別代表了需要注冊和不需要注冊的兩種文件
(注:專業(yè)文檔是經(jīng)驗性極強的領域,無法思考和涵蓋全面,素材和資料部分來自網(wǎng)絡,供 參考??蓮椭?、編制,期待你的好評與關注)