首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试Inno安装程序是否以管理员权限运行

测试Inno安装程序是否以管理员权限运行
EN

Stack Overflow用户
提问于 2020-05-27 19:26:30
回答 1查看 599关注 0票数 2

我想在非管理模式下运行安装程序。但是,当某个驱动程序丢失时,我希望安装它。由于不可能从[Code]更改指令值,所以我在想,如果我能够得到当前的执行模式,那么我就构建我的逻辑。

代码语言:javascript
复制
[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子句并继续设置。

这不起作用,因为我需要一个无声的安装:

Inno Setup - How to run an aplication with admin privileges if the setup is set to PrivilegesRequired=lowest?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-27 19:49:51

若要测试安装程序是否以管理员权限运行,请使用IsAdmin function

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62051291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档