2017-03-10 120 views
1

安裝我需要發生後所有的安裝,任何想法?感謝修改註冊表。如何修改註冊表的權限後,用Inno Setup的

[Registry]會話發生beforre第一[Run]。我需要在完成所有運行後修改註冊表。我在setACL.exe最近的[Run]這樣做,但我正在尋找更優雅的東西(腳本)。

+0

後「是什麼」具體是:

例如,如果在執行某些程序正在安裝,你可以使用AfterInstall parameter執行呢?我猜想在你運行'[Run]'部分後,你應該告訴我們!或者使用'[Registry]'部分有什麼問題? –

+0

在最後一次RUN後,[註冊表]會話出現在第一個RUN位置。我需要在所有運行完成後修改註冊表。我在上次運行時使用setACL.exe執行此操作,但我尋找更優雅的腳本(腳本)。 –

+0

這可能是您可以獲得的最優雅的解決方案。 –

回答

0

雖然你可以使用CurStepChanged(ssPostInstall) step落實在安裝結束一個動作,它不會幫助你多少。 Inno Setup Pascal Script中沒有設置註冊表權限的功能。無論如何你必須執行一個外部工具。


雖然您不必使用第三方實用程序(SetACL)。您顯然可以使用Windows regini命令。

Change registry permissions via command line (batch file)


另一種選擇是在[Registry]部分之前執行您的應用程序。

[Files] 
Source: "MyProg.exe"; DestDir: "{app}"; AfterInstall: ExecMyProg 

[Code] 

procedure ExecMyProg; 
begin 
    if Exec(ExpandConstant('{app}\notepad.exe'), '', '', 
      SW_SHOW, ewWaitUntilTerminated, ResultCode) then 
    begin 
    Log('Executed'); 
    end 
    else 
    begin 
    Log('Failed to execute'); 
    end; 
end;