Shell Execute的安静MSI Exec

勒让德雷

我在让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);

有人有什么想法吗?

FK

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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章