| |
BYTE szCEAppMgrExe[MAX_PATH*2+1];
if(iRet==ERROR_SUCCESS)
{
DWORD cbName, dwType;
cbName = MAX_PATH;
dwType = REG_SZ;
iRet = RegQueryValueEx(hResult, NULL, NULL, &dwType, szCEAppMgrExe, &cbName);
RegCloseKey(hResult);
}
if (iRet!=ERROR_SUCCESS)
{
MessageBox(NULL, _T("请先安装Microsoft ActiveSync软件!"), _T("错误"), MB_ICONERROR);
return 1;
}
TCHAR szExe[MAX_PATH*2+2];
#if _UNICODE
wcscpy(szExe,(TCHAR*)szCEAppMgrExe);
#else
strcpy(szExe, (char *)szCEAppMgrExe);
#endif
//4.开始安装
SHELLEXECUTEINFO ExecInfo ;
memset((TCHAR *)&ExecInfo, 0, sizeof(ExecInfo));
ExecInfo.cbSize = sizeof(ExecInfo);
ExecInfo.hwnd = NULL;
ExecInfo.lpDirectory = NULL;
ExecInfo.hInstApp = hInstance;
ExecInfo.lpVerb = _T("open");
ExecInfo.lpFile = szExe;
ExecInfo.lpParameters = szPath;
ExecInfo.nShow = SW_SHOW;
::ShellExecuteEx(&ExecInfo);
//5.退出程序
return 0;
}
主要就是调用CEAppMgr.exe,然后把SetUp.ini传递给它。
3.Setup.ini文件内容:
假设你的程序名称为PocketApp_PPC,那么应该编写如下:
[CEAppManager]
Version = 1.0
Component = App
[App]
Description = Sample Pocket PC application.
CabFiles =
PocketApp_PPC.X86.CAB,PocketApp_PPC.ARM.CAB,PocketApp_PPC.ARMV4.CAB,
PocketApp_PPC.MIPS.CAB,PocketApp_PPC.SH3.CAB,PocketApp_PPC.WCE420X86.CAB
4.把编译好的SetUp.exe和SetUp.ini以及你生成的CAB文件,放在同一根目录下点击setup.exe执行就OK啦。 |
|