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