我想在非管理模式下运行安装程序。但是,当某个驱动程序丢失时,我希望安装它。由于不可能从[Code]更改指令值,所以我在想,如果我能够得到当前的执行模式,那么我就构建我的逻辑。
[Setup]
PrivilegesRequired=lowest
[Code]
function IsKvaserNotInstalled: boolean;
begin
Result := Not RegKeyExists(HKEY_LOCAL_MACHINE, 'driver path');
end;
function MyConst(): String;
begin
Result := '{#SetupSetting("PrivilegesRequired")}';
MsgBox(Result, mbInformation, MB_OK);
end;
function InitializeSetup(): Boolean;
begin
MyConst();
if IsKvaserNotInstalled() then begin
MsgBox('KVASER driver is not installed. ' +
'We require setup to run in admin mode to install it.', mbInformation, MB_OK);
Result := false;
end else
Result := true;
end;
function IsKvaserNotInstalled: boolean;
begin
result := Not RegKeyExists(HKEY_LOCAL_MACHINE,
'SOFTWARE\KVASER AB\CANDriver 1.0\Drivers\kcanv');
end;
[Run]
Filename: "{app}\drivers_setup.exe"; Parameters: "/S" ; Check: IsKvaserNotInstalled;MyConst()返回给[Setup]部分的值。但我希望得到一个值,该值指示exe当前正在管理模式下运行。如果得到不同的值,则可以将其添加到If子句并继续设置。
这不起作用,因为我需要一个无声的安装:
发布于 2020-05-27 19:49:51
若要测试安装程序是否以管理员权限运行,请使用IsAdmin function。
https://stackoverflow.com/questions/62051291
复制相似问题