2016-04-08 222 views
-1

我知道這個問題之前被問過。但我仍然有這個問題。我無法弄清楚適用於我的解決方案。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_PAGE_WELCOME 
!define MUI_PAGE_CUSTOMFUNCTION_PRE lic_pre 
!define MUI_PAGE_CUSTOMFUNCTION_SHOW lic_show 
!insertmacro MUI_PAGE_LICENSE "$(LICENSE_TEXT)" 

還有什麼我不知道或需要做更多?

+0

你是如何啓動安裝程序的?在資源管理器中雙擊它? – Anders

+0

另一個應用程序啓動我的安裝程序。 – Vivek

+0

這個其他應用程序的名稱是什麼?它使用CreateProcess還是ShellExecute?啓動安裝程序後是否退出或隱藏? – Anders

回答

0

它工作正常,我有和無STARTF_USESHOWWINDOW在Windows 8:

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)來釋放前臺鎖定,但不應該有必要。

+0

我無法訪問該代碼,可能需要在那裏查看。 – Vivek