我在让MSI“安静地”安装时遇到了一些麻烦。我可以使MSI正常运行,如下所示:
TCHAR argmnt[] = TEXT("open");
TCHAR username[UNLEN + 1];
DWORD size = UNLEN + 1;
GetUserName((TCHAR*)username, &size);
wchar_t run[256];
wcscpy_s(run, L"C:\\Users\\");
wcscat_s(run, username);
wcscat_s(run, L"\\AppData\\Local\\Temp\\index.msi");
ShellExecute(NULL, argmnt, run, NULL, NULL, SW_SHOW);
但是,如果我在最后一行添加“ / quiet”,如下所示:
wcscat_s(run, L"\\AppData\\Local\\Temp\\index.msi /quiet");
它根本不会安装MSI。我试过用这样的参数添加一个TCHAR变量:
TCHAR params[] = TEXT("/quiet");
使用更新的shellexecute像这样:
ShellExecute(NULL, argmnt, run, params, NULL, SW_SHOW);
有人有什么想法吗?
Msi文件不是可执行文件,因此请尝试使用/ qn(完全无声)或/ qb(仅带有进度栏)传递给运行参数“ msiexec.exe”,并将参数路径传递给msi文件:
wcscpy_s(run, "msiexec.exe");
wcscpy_s(params, L"C:\\Users\\");
wcscpy_s(params, username);
wcscpy_s(params, L"\\AppData\\Local\\Temp\\index.msi /qn");
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句