2015-04-24 50 views
3

在我的代碼中,我使用[Run]部分以及CurStepChanged事件處理程序在發生ssPostInstall時執行某些操作。在僞腳本是這樣的:是否在激活ssPostInstall步驟的CurStepChanged事件之前處理了[Run]部分?

[Run] 
Filename: "{app}\FileToRun.exe"; Parameters: "/x" 

[Code] 
procedure CurStepChanged(CurStep: TSetupStep); 
begin 
    if CurStep = ssPostInstall then 
    begin 
    // do some stuff 
    end; 
end; 

我的問題是,哪一個是作爲第一個處理。 步驟之前處理CurStepChanged事件之前是否已處理[Run]部分?

從我所觀察到的看來,[Run]部分首先被處理。

回答

3

這是真的。在步驟的CurStepChanged事件被觸發之前處理[Run]節條目。它可以在下面閱讀piece of code(評論是我的):

ProcessRunEntries; // <- this processes the [Run] section entries 

if RmDoRestart and 
    (InitRestartApplications or 
    ((shRestartApplications in SetupHeader.Options) and not InitNoRestartApplications)) then 
    RestartApplications; 

SetStep(ssPostInstall, True); // <- and this triggers the CurStepChanged event 
+0

謝謝! @TLama。是否有可能在CurStepChanged事件中運行批處理文件(截至目前我正在使用[RUN])? – skr

+0

不客氣!對你的問題;是的,請查看['Exec'](http://www.jrsoftware.org/ishelp/index.php?topic=isxfunc_exec)函數。 – TLama

相關問題