2016-04-08 11 views
-1

私はこの質問が以前に尋ねられたことを知っています。しかし、私はまだ問題があります。私は私のために働く解決策を理解することができませんでした。私はnsisインストーラはバックグラウンドで開始します

  • 使用 BringToFront関数
  • を試してみましたが、何

    は.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)" 
    
    のように起動し

完全.OnInit機能を削除します

他に何か不足している、またはもっと必要なことがありますか?

+0

インストーラをどうやって起動していますか?エクスプローラでダブルクリックしますか? – Anders

+0

別のアプリケーションでインストーラが起動します。 – Vivek

+0

この他のアプリケーションの名前は何ですか? CreateProcessまたはShellExecuteを使用していますか?インストーラを起動した直後に終了しますか? – Anders

答えて

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を呼び出すと可視ウィンドウがありますか?このウィンドウはフォアグラウンドウィンドウですか?

foreground-lockを解放するにはAllowSetForegroundWindow(ASFW_ANY)を呼び出すことができますが、これは必須ではありません。

+0

私はそのコードにアクセスできないので、おそらくそこにチェックインする必要があります。 – Vivek

関連する問題