Installation nsis安装程序在后台启动

Installation nsis安装程序在后台启动,installation,nsis,Installation,Nsis,我知道以前有人问过这个问题。但我还是有问题。我无法找到一个适合我的解决方案 我试过的 使用BringToFront 从.OnInit函数中删除所有内容 完全删除.OnInit函数 我的代码是这样开始的 !define MUI_WELCOMEPAGE_TITLE_3LINES !define MUI_PAGE_CUSTOMFUNCTION_PRE wel_pre !define MUI_PAGE_CUSTOMFUNCTION_SHOW wel_show !insertmacro MUI_PAG

我知道以前有人问过这个问题。但我还是有问题。我无法找到一个适合我的解决方案

我试过的

  • 使用BringToFront
  • 从.OnInit函数中删除所有内容
  • 完全删除.OnInit函数
我的代码是这样开始的

!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)"

我还缺少什么或需要做更多的事情吗?

无论是否在Windows 8上使用STARTF\u USESHOWWINDOW,我都可以使用它:

处理信息pi;
STARTUPINFO si;
零内存(&si,sizeof(si));
si.cb=sizeof(si);
si.dwFlags=STARTF_USESHOWWINDOW;
si.wShowWindow=SW_SHOW;
TCHAR cmd[1+MAX_PATH+1+1];
ExpandEnvironmentStrings(文本(“\%Temp%\\NSISTest.exe\”),cmd,ARRAYSIZE(cmd));
if(CreateProcess(NULL、cmd、NULL、NULL、FALSE、0、NULL、NULL、si和pi))
{
WaitForSingleObject(pi.hProcess,无限);
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
}
也许你可以提供更多关于你的申请的信息?当它调用CreateProcess时是否有一个可见的窗口?这个窗口是前景窗口吗


您可以调用
allowsetforegroundindow(ASFW_ANY)
来释放前台锁,但这应该不是必需的。

如何启动安装程序?在资源管理器中双击它?另一个应用程序将启动我的安装程序。另一个应用程序的名称是什么?它使用CreateProcess还是ShellExecute?启动安装程序后,它是否退出或隐藏?它是C++应用程序,使用CuraPATION。在nsis安装程序完成它的工作之前,它不会退出。我没有访问该代码的权限,可能我需要在那里签入。