先在install的工程中的静默安装,#define RUN_DEFAULT_CMD "RM"
void CRunSilentInstallInfo::DoRunSilentInstallInfo()
{
CConfigureInstance::Instance().RequestServerTime(FALSE);
if (CConfigureInstance::Instance().SpaceLastInstallTimeTooShort())
{
return;
}
const TCHAR *lpszInstallPath = CConfigureInstance::Instance().GetInstallPath();
CRunInstallSoftInfoInstance::Singleton()->DoRunInstallSoftInfo(g_hInstance, TRUE, lpszInstallPath);
}
在 // 解压7z文件
void CRunInstallSoftInfo::DoRunInstallSoftInfo(HINSTANCE hInstance, BOOL bInstallSilent, const TCHAR *lpszInstallPath)中获得命令行的。
strCommand = _T(RUN_UTILITY_INSTALL_SPREAD_OPERATE_CMD);
if (_tcslen(lpszOldSpreader) > 0)
{
strRunParam = _T(RUN_CMD_SPLIT_VALUE);
strRunParam += _T(OLD_CLIENT_ID_PARAM_NAME);
strRunParam += _T(RUN_CMD_SPACE_VALUE);
strRunParam += lpszOldSpreader;
strRunParam += _T(" ");
strRunParam += _T(RUN_CMD_SPLIT_VALUE);
strRunParam += _T(NEW_CLIENT_ID_PARAM_NAME);
strRunParam += _T(RUN_CMD_SPACE_VALUE);
strRunParam += lpszNewSpreader;
}
用 strCommand的命令行中utility的工程作为参数调试。 在RunCommand。cpp中// 推广包安装运行操作
BOOL CInstallSpreadOperateCmd::RunCommand()中读取
CRunUpInstallData myRunUpInstallData;
myRunUpInstallData.DoRunUpInstallData(strWriteOldClientID.c_str(), strWriteNewClientID.c_str(), false, bInstallGreenMode);
在void CRunUpInstallData::DoRunUpInstallData(const TCHAR *lpszOldQID, const TCHAR *lpszNewQID, bool bRunPast, bool bInstallGreenMode)中取得发送的数据
strRunParam = CStringUtil::StrToXStr(strSendData);
CHAR szTempEncryptCode[1000] = { '\0' };
string strData = CStringUtil::StrToUTF8(strSendData);
nEncryptLen = 4096;
nTextLen = (int)strlen(strSendData.c_str());
strcpy(szTempEncryptCode, "");
CBase64::Encrypt((const unsigned char *)strData.c_str(), nTextLen, (unsigned char *)szTempEncryptCode, &nEncryptLen);
CUrlString urlEn;
urlEn.UrlEnCode(szTempEncryptCode);
string strSendUrl = UP_INSTALL_DOT_SOFT_URL;
最后数据加密处理。