锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
濂斤紝 璁╂垜浠紑濮嬨傞鍏堬紝 璁╂垜浠湅鐪嬫湁鍑犵鏂規銆?br> 鍏跺疄錛?澶у鍒扮綉涓婇殢渚夸竴鑹樺氨鑳芥悳鍒扮涓縐嶆柟妗堬紝鎵嬫妸鎵嬫暀澶у鎬庝箞鍋氭闈㈠畨瑁呯▼搴忥紝榪欐槸鐩存帴鐢╲s2005錛屼笉榪囨垜濂藉儚娌$湅鍒癈++鐗堢殑錛堝叏鏄痸b.net鍜孋#鐨勶級銆?br> 絎簩縐嶆柟妗堝氨鏄埄鐢ㄧ幇鏈夌殑鎵撳寘宸ュ叿錛岃繖涓垜娌¤瘯榪囷紱
絎笁縐嶆柟妗堝拰絎竴縐嶅樊涓嶅銆備笉榪囨瘮絎竴縐嶇畝鍗曪紝閮芥槸鍏堣鍐欎竴涓畨瑁呯殑INI鏂囦歡錛?鐒跺悗璋冪敤CEAppMgr.exe紼嬪簭錛屾妸INI鏂囦歡浼犵粰瀹冦備笉榪囪繖鐢ㄦ柟妗堜笉鑳藉畾鍒惰嚜宸辯殑瀹夎鐣岄潰銆?br> 鑰屼笖錛屾煇浜涙湅鍙嬭繕闇瑕佸拰鑷繁紼嬪簭瀹夎鐨勬椂鍊欏悓鏃跺畨瑁呭叾浠栫▼搴忋傛渶濂界殑鏂規硶鏄紝鍦ㄧ敤鎴風偣鍑繪垜浠闈㈠畨瑁呯▼搴忕殑鏃跺欙紝 鎶婃墍鏈夌殑闇瑕佺殑紼嬪簭閮藉畨瑁呭ソ銆?br>
鐜板湪錛屾垜浠潵鑰冭檻瑙e喅浠ヤ笂闂鐨勬柟妗堛傝繖縐嶆柟妗堝繀欏昏兘婊¤凍浠ヤ笅鍑犵偣錛?br> 1錛?瀹夎紼嬪簭鐢╲c++鍐欙紱
2錛?鑳藉瀹氬埗鐣岄潰錛?br> 3錛?鑳藉鍚屾椂瀹夎澶氫釜.cab紼嬪簭錛?br> 棣栧厛錛屾垜浠繀欏葷煡閬揥in Mobile 涓婃庝箞瀹夎紼嬪簭鐨勩傚湪Win Mobile 涓婏紝鏈変釜瀹夎紼嬪簭鐨勭▼搴忓彨 wceload.exe錛屽畠鐨勭敤娉曟槸錛氭妸浣犺瀹夎鐨勭▼搴忓寘璺緞浼犵粰瀹冨仛鍙傛暟鍗沖彲錛堟湁鐐瑰繀欏繪敞鎰忥細蹇呴』鍦ㄤ綘鐨勫弬鏁板瓧絎︿覆涓よ竟鍔犱笂鍙屽紩鍙鳳紝鍏蜂綋鐢ㄦ硶瑙乨emo錛夈備負瀹炵幇榪滅▼瀹夎錛?鎴戜滑鍙互鍏堟妸瀹夎Cab鍖呮嫹璐漃DA涓婏紝鐒跺悗榪滅▼璋冪敤瀹夎紼嬪簭錛屽疄鐜板畨瑁呫?/p>
絎簩錛屾棦鐒舵垜浠兂瀹氬埗鐣岄潰錛屽仛瀹夎紼嬪簭鏈綆鍗曠殑灝辨槸鐢?CPropertySheet 鍜?CPropertyPage 銆備負浜嗙畝鍗曪紝鎴戜滑鍦╠emo涓氨閲囧彇榪欑鏂規硶錛?br> 絎笁錛岃瀹炵幇澶氫釜cab瀹夎錛屼篃寰堢畝鍗曘傝寰楋紝鎴戜滑鍦ㄤ笂綃囨枃绔犱腑璁板緱閭d釜瀹夎DLL鍚楋紵鎴戜滑鍙互鍒╃敤閭d釜瀹炵幇澶氫釜cab瀹夎銆傛垜浠厛鍙互鎶婃垜浠瀹夎鐨勫寘鍋氫負鏂囦歡澧炲姞鍒扮殑“搴旂敤紼嬪簭鏂囦歡”欏癸紝鐒跺悗鍦╠ll涓皟鐢ㄥ畨瑁呯▼搴忚繘琛屽畨瑁呫?br> OK, 鐜板湪榪欑鏂規閮借兘婊¤凍浠ヤ笂瑕佹眰銆傚ぇ瀹舵濊礬鏈夌偣鍗拌薄娌★紝濡傛灉榪樹笉娓呮錛岃緇х畫璺熸垜寰涓嬭蛋銆傛垜浠紑濮嬪啓紼嬪簭銆?br> 鎴戜滑鎵撳紑vs2005, 鏂板緩涓涓熀浜嶮FC瀵硅瘽妗嗙▼搴忓悕涓篠etupOnPC錛屾敞鎰忛変腑闈欐侀摼鎺ャ傛垜浠氨鍙互鍚戝叾涓姞鍏ユ垜浠瀹氬埗鐣岄潰鐨凜PropertySheet 鍜?CPropertyPage 鐨勭戶鎵跨被銆傚叿浣撹繃紼嬶紝鎴戠渷鐣ャ傝鏌ョ湅婧愮爜銆?br> 鎴戜滑瑕佸湪 澶存枃浠?stdafx.h 涓姞鍏?#include <rapi.h> //榪滅▼API澶存枃浠訛紝 鍏舵榪樿鎶婂畠浠?H鍜?lib鏂囦歡寮曠敤璺緞鍔犲叆鍒皏s2005涓傝礬寰勪負錛氬畨瑁呰礬寰刓Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\Activesync\Inc(Lib)銆?br> 涓嬮潰錛屾垜浠紑濮嬪啓浠g爜錛?榪囩▼鐪佺暐錛堣鐪嬫簮鐮侊級銆傜敱浜庯紝鎴戜滑闇瑕佹妸澶氫釜鍖呬竴璧峰畨瑁咃紝鎵浠ユ垜浠鏀硅繘涓婃鍐欑殑CabSample鐨剆etupdll鐨勪唬鐮併備富瑕佹槸嫻佺▼濡備笅錛氬厛媯嫻嬪凡瀹夎鐨勭▼搴忥紙緇勪歡錛夛紝鐒跺悗閫夋嫨鏈畨瑁呯殑瀹夎銆傚叿浣撲唬鐮佸弬瑙乨emo銆備粖澶╃殑渚嬪瓙錛屾垜浠互sqlmobile涓轟緥錛屾庝箞璁╁畠鍜屾垜浠竴璧峰畨瑁呫傞壌浜庯紝sqlmobile鐨勫畨瑁呭寘鍚嶅瓧澶暱錛?鎴戠粰瀹冧滑閲嶅懡鍚嶃傦紙涓鍏變笁涓紝鍒嗗埆鍙細SqlMobile1錛孲qlMobile2錛孲qlMobile3錛夈?br> OK 錛?鍏ㄩ儴緇撴潫銆備笉鎳傜殑鍦版柟鍙傝婧愮爜錛屼笅闈㈡槸榪愯鍥俱?br>
媯嫻婸DA榪炴帴鎯呭喌錛堟湭榪炰笂錛夛紝濡傛灉鐐圭浜屼釜妗嗘鍐嶆嫻?濡備笅鍥?br>
媯嫻嬪埌鍚庯紝 涓嬩竴姝ユ墠鑳界戶緇紝 濡備笅鍥?br>
鎷瘋礉瀹夎鏂囦歡
瀹夎鎴愬姛錛?濡備笅鍥?br>
PC绔紝鍏ㄩ儴鎵ц瀹屾瘯銆備綘鐪嬩綘鐨刾da鎴栬呮ā鎷熷櫒宸茬粡鍦ㄥ畨瑁呯▼搴忔垨鑰呭畨瑁呭ソ浜嗐?br>鍒版錛屽叏榪囩▼緇撴潫銆傞渶瑕佽鏄庝笅灝辨槸錛?鎴戜滑鐨勭▼搴忔渶濂介夌敤闈欐?release 緙栬瘧錛岀敓鎴愮殑紼嬪簭鐩存帴鍙互鑰冨埌瀹㈡埛PC榪愯錛屾棤欏誨啀鎵撳寘銆傚彟澶栵紝鐢變簬鏈▼搴忕敤鍒ce RAPI 鎵浠ワ紝鍦ㄦ垜浠殑紼嬪簭鏂囦歡涓紝褰撶劧瑕佸寘鎷互涓?涓猟ll 鏂囦歡錛歳api.dll 鍜?ceutil.dll 銆傝繖涓や釜鏂囦歡涓鑸榪嘇ctinveSync灝變細鍦ㄧ郴緇熸枃浠朵腑鏈夈傚彟澶栵紝鎴戜滑鐨勭▼搴忔枃浠跺す涓紝瑕佸寘鎷綘瑕佸畨瑁呯殑.cab鏂囦歡銆侽K, 鐜板湪鍏ㄩ儴緇撴潫銆傜敱浜庯紝demo瓚呰繃2 M澶у皬錛屾兂瑕佹簮鐮佺殑鐣欎笅Email銆?br>璇峰ぇ瀹跺埌涓嬮潰榪欎釜緗戝潃鍘諱笅杞絛emo鍚?
http://www.winbile.net/BBS/1016029/ShowPost.aspx
]]>
2錛夎兘澶熷緩绔嬩腑鏂囧揩鎹鋒柟寮忥紱
鍝堝搱錛屽叾瀹炲氨榪欎箞澶氾紒鍐嶅錛屾垜涔熻涓嶅嚭鏉ワ紒鍏跺疄娌″暐鎶鏈惈閲忥紝 澶у鍒絎戯紒ok錛岃鎴戜滑寮濮嬶紝浣犲彲浠ユ寜鐓ф垜璇寸殑姝ラ涓姝ヤ竴姝ュ緩绔嬪伐紼嬪啓浠g爜錛屼篃鍙互鐩存帴涓嬭澆Demo婧愮爜鏌ョ湅錛堝緩璁墠涓縐嶏級錛?br>
絎竴姝ワ細寤虹珛搴旂敤紼嬪簭銆傛垜浠墦寮VS2005錛屾柊寤轟竴涓猄martDevice鐨勫簲鐢ㄧ▼搴忓伐紼嬮」鐩紝鎴戜滑鏆備笖鍙仛錛欳abSample銆傜劧鍚庝竴鐩村線涓嬶紝鐩村埌寤虹珛紼嬪簭錛屾渶鍚庣紪璇戠敓鎴愭墽琛岀▼搴忋俹k, 絎竴姝ュ畬鎴愩傦紙鍥劇暐 錛?br>
絎簩姝ワ細寤虹珛浠婃棩鎻掍歡銆傚叧浜庢庝箞鍐欎粖鏃ユ彃浠訛紝鎴戜笉鎯沖璇淬傜綉涓婄殑浠g爜涔熸瘮杈冨錛屽湪姝ゆ垜緇欎釜閾炬帴錛屽畠姣旇緝璇︾粏闃愯堪浜嗕粖鏃ユ彃浠躲?a >http://www.codeguru.com/cpp/w-p/ce/pocketpc/article.php/c9269__1/
涓嬮潰鏄叿浣撴楠わ細1錛夊湪鍒氭墠鏂板緩鐨勯」鐩腑錛屾柊寤轟竴涓伐紼嬨傝宸ョ▼鏄熀浜嶴martDevice鐨刣ll欏圭洰錛屾垜浠妸宸ョ▼鍚嶅畾涓猴細MyToday 銆傚涓嬪浘鎵紺猴細
鐒跺悗涓鐩村悜涓嬶紝涓鐩村埌宸ョ▼璁劇疆閫夐」錛屽湪宸ョ▼綾誨瀷涓夋嫨 dll 錛?鐐瑰嚮瀹屾垚鍗沖彲銆傚鍥撅細
涓嬮潰鎴戜滑鏉ュ畬鎴愪粖鏃ユ彃浠朵唬鐮侊細
棣栧厛錛屾垜浠悜 浠婃棩鎻掍歡 宸ョ▼涓姞鍏ヤ竴涓浘鏍?ID_ICON1)錛岃〃紺轟綘鐨勫簲鐢ㄧ▼搴忋?br> 鐒跺悗錛屾垜浠湪宸ョ▼鐨剆ource鏂囦歡澶逛腑鍔犲叆.def鏂囦歡錛屽悕瀛椾換鍙栵紝渚嬪錛歁yToday.def
騫跺湪鍒氭墠鎵鍔犳枃浠朵腑鍐欎笅濡備笅鍐呭錛?br>EXPORTS
InitializeCustomItem @240
鍐嶇劧鍚庯紝鎴戜滑瀹屽杽鎻掍歡鎵ц浠g爜銆傛垜璐村嚭涓昏浠g爜錛屽叿浣撹demo銆傛敞鎰忥紝鍦ㄥ啓浠g爜鍓嶄竴瀹氳鍔犲叆 <todaycmn.h> 澶存枃浠躲?br> 鏈鍚庣紪璇戯紝鐢熸垚 MyToday.dll
MyToday涓昏婧愮爜錛?br>LRESULT CALLBACK WndProc (HWND hWnd, UINT uimessage, WPARAM wParam, LPARAM lParam)
{
switch (uimessage)
{
case WM_TODAYCUSTOM_QUERYREFRESHCACHE:
{
TODAYLISTITEM *ptli = (TODAYLISTITEM *)wParam;
if (NULL == ptli)
break;
if (0 == ptli->cyp)
{
ptli->cyp = PLUG_HEIGHT;
return TRUE;
}
}
break;
case WM_CREATE:
break;
case WM_LBUTTONUP:
{
// 1 鍒ゆ柇鏄惁鍦?鏈夋晥鍖哄煙錛? 鏌ヨ娉ㄥ唽琛紝 寰楀埌紼嬪簭璺緞錛?3 鍚姩紼嬪簭
RECT rect;
POINT point;
point.x = LOWORD(lParam);
point.y = HIWORD(lParam);
::GetClientRect(hWnd, &rect);
if(PtInRect(&rect, point))
{
HKEY hOpenKey;
long lResult = 0;
DWORD iValueType = 0;
DWORD iLen = 0;
PROCESS_INFORMATION procInfo;
TCHAR szPath[MAX_PATH] = {'\0'};
LPCTSTR keyName = _T("Software\\CabSample"); //姝ゆ敞鍐岃〃瀛樻斁浣犲簲鐢ㄧ▼搴忕殑鎵ц璺緞
LPCTSTR csAppPath = _T("AppPath");
lResult = ::RegOpenKeyEx(HKEY_CURRENT_USER, keyName, 0, 0, &hOpenKey);
ASSERT(lResult == ERROR_SUCCESS);
if(lResult != ERROR_SUCCESS)
{
MessageBox(hWnd, _T("璇繪敞鍐岃〃澶辮觸"), _T("鎻愮ず"), MB_OK);
//MessageBox(hWnd, _T("Open Regedit Faild"), _T("鎻愮ず"), MB_OK);
break;
}
iLen = MAX_PATH * sizeof(TCHAR);
lResult = ::RegQueryValueEx(hOpenKey, csAppPath, 0, &iValueType, (BYTE*)szPath, &iLen);
if(lResult != ERROR_SUCCESS)
{
MessageBox(hWnd, _T("璇繪敞鍐岃〃澶辮觸"), _T("鎻愮ず"), MB_OK);
//MessageBox(hWnd, _T("Read Regedit Faild"), _T("鎻愮ず"), MB_OK);
break;
}
::RegCloseKey(hOpenKey);
BOOL bSuc = ::CreateProcess(szPath, NULL, NULL, NULL, FALSE, 0, NULL, NULL, NULL, &procInfo);
if(bSuc)
{
::CloseHandle(procInfo.hThread);
::CloseHandle(procInfo.hProcess);
}
else
{
MessageBox(hWnd, _T("鍚姩紼嬪簭澶辮觸"), _T("鎻愮ず"), MB_OK);
//MessageBox(hWnd, _T("start App Failed"), _T("鎻愮ず"), MB_OK);
//MessageBox(hWnd, szPath, _T("鎻愮ず"), MB_OK);
}
}
}
break;
case WM_PAINT:
{
HDC hdc;
PAINTSTRUCT ps;
hdc = BeginPaint(hWnd, &ps);
PaintAll(hWnd, hdc);
EndPaint(hWnd, &ps);
}
break;
case WM_ERASEBKGND:
return TRUE;
case WM_TODAYCUSTOM_RECEIVEDSELECTION:
g_bSelected = TRUE;
return TRUE;
case WM_TODAYCUSTOM_USERNAVIGATION:
break;
case WM_TODAYCUSTOM_ACTION:
break;
}
return DefWindowProc (hWnd, uimessage, wParam, lParam) ;
}
絎笁姝ワ細寤虹珛瀹夎dll銆傜幇鍦紝鎴戜滑榪涘叆絎笁姝ャ?br> 棣栧厛錛屽拰絎簩姝ョ被浼鹼紝鎴戜滑涓洪」鐩柊澧炰竴涓悕涓簊etupdll鐨刣ll宸ョ▼銆傚湪姝ゅ伐紼嬩腑鍚屾牱涔熻鍔犱竴涓?def鏂囦歡錛屽茍涓斿湪鍏朵腑鍔犲叆濡備笅鍐呭錛?br>EXPORTS
Install_Init
Install_Exit
Uninstall_Init
Uninstall_Exit
鐒跺悗錛?鎴戜滑瀹屽杽setupdll鐨勬墽琛屼唬鐮併傛垜璐村嚭涓昏浠g爜錛屽叿浣撹demo銆傛敞鎰忥紝鍦ㄥ啓浠g爜鍓嶄竴瀹氳鍔犲叆"ce_setup.h" 鍜?lt;shellapi.h>澶存枃浠訛紝鍏朵腑"ce_setup.h"鍦╠emo閲岄潰鍖呭惈銆?br> 鏈鍚庣紪璇戯紝鐢熸垚 Setupdll.dll
Setupdll涓昏婧愮爜錛?br>codeINSTALL_EXIT Install_Exit(HWND hwndparent,
LPCTSTR pszinstalldir,
WORD cfaileddirs,
WORD cfailedfiles,
WORD cfailedregkeys,
WORD cfailedregvals,
WORD cfailedshortcuts)
{
HKEY hOpenKey = NULL;
long lResult = 0;
DWORD dwOpenStyle = 0;
DWORD iValueType = 0;
DWORD iLen = 0;
DWORD iTemp = 0;
TCHAR szPath[MAX_PATH] = {'\0'};
TCHAR szLinkPath[MAX_PATH] = {0};
TCHAR szAppPath[MAX_PATH] = {0};
LPCTSTR keyName = _T("Software\\CabSample");
LPCTSTR csAppPath = _T("AppPath");
LPCTSTR csTodaykey = _T("Software\\Microsoft\\Today\\Items\\\"鎵撳寘紺轟緥\"");
LPCTSTR csPlugName = _T("MyToday.dll"); // 浣犵殑鎻掍歡鍚?br> LPCTSTR csAppName = _T("CabSample.exe"); // 浣犵殑紼嬪簭鍚?/p>
if(cfaileddirs || cfailedfiles || cfailedregkeys
|| cfailedregvals || cfailedshortcuts)
goto Failed;
//鑾峰彇涓葷▼搴忓畨瑁呰礬寰?br> _tcscpy(szPath, pszinstalldir);
_tcscat(szPath, _T("\\"));
_tcscat(szPath, csAppName);
//璁劇疆涓葷▼搴忓揩鎹鋒柟寮忕殑鎵ц璺緞
_tcscpy(szAppPath, _T("\""));
_tcscat(szAppPath, szPath);
_tcscat(szAppPath, _T("\""));
// 灝嗕富紼嬪簭瀹夎璺緞鍐欏叆娉ㄥ唽琛?br>
lResult = ::RegCreateKeyEx(HKEY_CURRENT_USER, keyName, 0, _T(""), REG_OPTION_NON_VOLATILE,
0,NULL,&hOpenKey, &dwOpenStyle);
if(lResult != ERROR_SUCCESS)
goto Success;
::RegSetValueEx(hOpenKey, csAppPath, 0, REG_SZ, (BYTE*)&szPath, sizeof(TCHAR) * _tcslen(szPath));
::RegCloseKey(hOpenKey);
memset(szPath, 0x00, sizeof(TCHAR) * MAX_PATH);
_tcscpy(szPath, pszinstalldir);
_tcscat(szPath, _T("\\"));
_tcscat(szPath, csPlugName);
::CopyFile(szPath, _T("\\Windows\\MyToday.dll"), FALSE);
// 瀹夎 “浠婃棩鎻掍歡”
hOpenKey = NULL;
lResult = ::RegCreateKeyEx(HKEY_LOCAL_MACHINE, csTodaykey, 0, _T(""), REG_OPTION_NON_VOLATILE,
0, NULL, &hOpenKey, &dwOpenStyle);
if(lResult != ERROR_SUCCESS)
goto Success; //濡傛灉璇誨啓娉ㄥ唽琛ㄥけ璐ワ紝 鏀懼純瀹夎 “浠婃棩鎻掍歡”
// 娉ㄥ唽鎻掍歡
iTemp = 0;
::RegSetValueEx(hOpenKey, _T("Flags"), 0, REG_DWORD, (BYTE*)&iTemp, sizeof(iTemp));
::RegSetValueEx(hOpenKey, _T("Options"), 0, REG_DWORD, (BYTE*)&iTemp, sizeof(iTemp));
iTemp = 1;
::RegSetValueEx(hOpenKey, _T("Enabled"), 0, REG_DWORD, (BYTE*)&iTemp, sizeof(iTemp));
::RegSetValueEx(hOpenKey, _T("Order"), 0, REG_DWORD, (BYTE*)&iTemp, sizeof(iTemp));
::RegSetValueEx(hOpenKey, _T("Selectability"), 0, REG_DWORD, (BYTE*)&iTemp, sizeof(iTemp));
iTemp = 4;
::RegSetValueEx(hOpenKey, _T("Type"), 0, REG_DWORD, (BYTE*)&iTemp, sizeof(iTemp));
::RegSetValueEx(hOpenKey, _T("DLL"), 0, REG_SZ, (BYTE*)_T("\\Windows\\MyToday.dll"), sizeof(TCHAR) * _tcslen(szPath));
// 鍙戦佺郴緇熸秷鎭?br> ::SendMessage(HWND_BROADCAST, WM_WININICHANGE, (WPARAM)0xF2, 0);
::RegCloseKey(hOpenKey);
//鍒涘緩蹇嵎鏂瑰紡
if(SHGetSpecialFolderPath(NULL, szLinkPath, CSIDL_PROGRAMS,FALSE))
{
_tcscat(szLinkPath, _T("\\"));
_tcscat(szLinkPath, _T("鎵撳寘紺轟緥.lnk"));
if(SHCreateShortcut(szLinkPath, szAppPath) == FALSE)
{
MessageBox(NULL, _T("瀹夎蹇嵎鏂瑰紡澶辮觸"), _T("鎻愮ず"), MB_OK);
}
}
else
MessageBox(NULL, _T("鑾峰彇緋葷粺鏂囦歡璺緞澶辮觸"), _T("鎻愮ず"), MB_OK);
//return value
Success:
return codeINSTALL_EXIT_DONE;
Failed:
return codeINSTALL_EXIT_UNINSTALL;
}
絎洓姝ワ細鍒朵綔瀹屾暣鎵撳寘紼嬪簭銆傚湪欏圭洰涓柊澧炰竴涓伐紼嬶紝鍚嶄負CabSampleCab銆傚叿浣撳弬鐓т笅鍥撅細
鐐瑰嚮ok, 涓嬮潰鍜變滑榪涘叆cab鎵撳寘闃舵銆? 鎴戝彧鍐欐楠わ紝鏇磋緇嗕俊鎭紝璇峰弬鑰冨井杞痬sdn)
棣栧厛錛氬湪“瑙嗗浘”鑿滃崟涓婂崟鍑?#8220;灞炴х獥鍙?#8221;錛屾垨鎵撳紑“灞炴?#8221;紿楀彛銆?br> 鍦ㄥ睘鎬х綉鏍肩殑“ProductName”瀛楁涓紝灝嗗兼洿鏀逛負“CabSample”銆?br>
鐒跺悗錛氬湪“鏈湴鏂囦歡緋葷粺”嫻忚鍣ㄤ笅錛岄夋嫨“搴旂敤紼嬪簭鏂囦歡澶?#8221;錛屽彸鍑婚変腑 “鏂版?#8221;錛岀戶緇偣鍑?“欏圭洰涓昏緭鍑?#8221;鑿滃崟錛屽湪寮瑰嚭瀵硅瘽妗嗙殑宸ョ▼涓嬫媺妗嗕腑錛岄変腑 “CabSample”, 閲嶅涓婇潰姝ラ錛屼緷嬈℃妸鍓嶉潰涓変釜宸ョ▼涓昏緭鍑洪兘鍔犺繘鏉ャ傚涓嬪浘錛?br>
鍐嶇劧鍚庯細鍦?鏂規嫻忚鍣ㄤ腑錛?閫夋嫨cab欏圭洰宸ョ▼錛屾煡鐪嬪睘鎬ф爮銆傜偣鍑誨睘鎬ф爮涓殑 “CE Setup Dll”灞炴э紝鍦ㄥ脊鍑轟笅鎷夋涓夋嫨嫻忚錛岀劧鍚庡湪寮瑰嚭瀵硅瘽妗嗕腑鐐瑰嚮榪涘叆“搴旂敤紼嬪簭