2
是否可以在Inno Setup中禁用靜默和verysilent卸載?在Inno Setup中禁用靜默和verysilent卸載
是否可以在Inno Setup中禁用靜默和verysilent卸載?在Inno Setup中禁用靜默和verysilent卸載
您不能直接禁用它,但可以檢查它是否以靜默方式運行,並在InitializeSetup()
/InitialiseUninstall()
事件功能期間顯示消息/退出。
function InitializeSetup(): Boolean;
begin
// Default to OK
result := true;
// If it's in silent mode, exit
if WizardSilent() then
begin
MsgBox('This setup doesn''t support silent installations.', mbInformation, MB_OK);
result := false;
end;
end;
或者用於卸載:
function InitializeUninstall(): Boolean;
begin
// Default to OK
result := true;
// If it's in silent mode, exit
if UninstallSilent() then
begin
MsgBox('This setup doesn''t support silent uninstallation.', mbInformation, MB_OK);
result := false;
end;
end;
(未經測試空氣代碼)
如果你想默默(???:o)在非靜默模式下重新運行安裝程序,你可以用這個InitializeSetup
如果塊中:
ShellExecAsOriginalUser('', ExpandConstant('{srcexe}'), '', '', SW_SHOWNORMAL, ewNoWait, 0);
注意,這也將下降傳遞的任何其他參數並再次提示升高。
當您將「結果」設置爲False以中斷安裝程序後,您就錯過了'Exit;'。但是,如果沒有'/ SILENT'參數(不知道是否可能),從'ExpandConstant('{srcexe}')'執行setup可執行文件會更好嗎? +1在此期間.. – TLama
@TLama:Oopos,我已經調整爲有更好的默認值,這可能會更容易取決於還需要進入該功能。至於重新運行'{srcexe}','[Code]'在設置的高位部分運行,所以新的非靜默部分也將被提升,從而破壞'... asoriginaluser'功能。 – Deanna
@TLama:我說的是垃圾,它可以使用'ExecAsOriginalUser()'函數:o) – Deanna