我知道之前曾问过这个问题。但我仍然有问题。我无法找到适合我的解决方案。
我尝试了什么
我的代码就像这样开始
!define MUI_WELCOMEPAGE_TITLE_3LINES
!define MUI_PAGE_CUSTOMFUNCTION_PRE wel_pre
!define MUI_PAGE_CUSTOMFUNCTION_SHOW wel_show
!insertmacro MUI_PAGE_WELCOME
!define MUI_PAGE_CUSTOMFUNCTION_PRE lic_pre
!define MUI_PAGE_CUSTOMFUNCTION_SHOW lic_show
!insertmacro MUI_PAGE_LICENSE "$(LICENSE_TEXT)"
我还缺少什么或需要做更多其他事情?
答案 0 :(得分:0)
在Windows 8上使用和不使用STARTF_USESHOWWINDOW时,它对我有效:
PROCESS_INFORMATION pi;
STARTUPINFO si;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_SHOW;
TCHAR cmd[1+MAX_PATH+1+1];
ExpandEnvironmentStrings(TEXT("\"%Temp%\\NSISTest.exe\""), cmd, ARRAYSIZE(cmd));
if (CreateProcess(NULL, cmd, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
{
WaitForSingleObject(pi.hProcess, INFINITE);
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
}
也许您可以提供有关您的申请的更多信息?调用CreateProcess时是否有可见窗口?这个窗口是前景窗口吗?
您可以调用AllowSetForegroundWindow(ASFW_ANY)
来释放前景锁,但不一定非必要。