有没有人知道如何强制用户在完成安装后重新启动计算机? 使用AlwaysRestart = yes安装程序的指令,它所做的只是提示用户重新启动,在现在或之后进行选择,但它实际上不会自动重启或仅显示“立即重启”选项。 有可能吗?
感谢。
答案 0 :(得分:3)
没有。这是不可能的。这个is hardcoded
并没有任何事件可以让它改变(例如隐藏否,我将在以后重新启动计算机单选按钮)。
但这是正确的。未经用户许可,切勿关闭系统。他们可能会丢失数据。
答案 1 :(得分:0)
你可以这样做:
[Tasks]
Name: "RestartPC"; Description: "Restart the Computer"; GroupDescription: "Post Installation Options"; Flags: unchecked;
[Code]
function NeedRestart(): Boolean;
begin
if IsTaskSelected('RestartPC') then
Result := False;
end;
procedure CurStepChanged(CurStep: TSetupStep);
var
intResultCode: Integer;
begin
if CurStep = ssPostInstall then
if IsTaskSelected('RestartPC') then
NeedRestart;
if CurStep = ssDone then
begin
if IsTaskSelected('RestartPC') then
if SuppressibleMsgBox('A restart was selected, or Setup must restart your computer to complete the installation.' + #13#10 + #13#10 +
'Would you like to restart now?',
mbConfirmation, MB_YESNO, IDYES) = IDYES then
Exec('shutdown.exe', '-r -t 0', '', SW_HIDE,
ewNoWait, intResultCode);
end;
end;