测试 Inno Setup 安装程序是否具有 运行 管理员权限
Test if Inno Setup installer is running with Administrator privileges
我想 运行 在非管理员模式下安装程序。但是,当缺少某些驱动程序时,我希望安装它。由于无法从 [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()
returns [Setup]
部分给出的值。但我希望获得指示该 exe 当前处于管理模式 运行ning 的值。如果我得到不同的值,我可以将它添加到 if 子句并继续设置。
这行不通,因为我需要静默安装:
要测试安装程序是否具有 运行 管理员权限,请使用 IsAdmin
function。
我想 运行 在非管理员模式下安装程序。但是,当缺少某些驱动程序时,我希望安装它。由于无法从 [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()
returns [Setup]
部分给出的值。但我希望获得指示该 exe 当前处于管理模式 运行ning 的值。如果我得到不同的值,我可以将它添加到 if 子句并继续设置。
这行不通,因为我需要静默安装:
要测试安装程序是否具有 运行 管理员权限,请使用 IsAdmin
function。