DELPHI 申请管理员权限级别


本文整理自网络,侵删。

 下面的代码片段可以作为应用程序是否需要(并且适当地授予)管理员权限的快速测试。申报你的申请所需的提升级别,并执行以下程序:
管理员级别(标准用户下):

1、asInvoker:应用程序作为标准用户启动
2、highestAvailable:应用程序作为标准用户启动

3、requireAdministrator:在运行应用程序之前提示管理员权限


uses

System.Win.Registry, Winapi.Windows;


procedure isAdmin();

var

  reg: TRegistry;

  openResult: Boolean;

begin

  reg := TRegistry.Create(KEY_READ);

  reg.RootKey := HKEY_LOCAL_MACHINE;

  reg.Access := KEY_WRITE;

  openResult := reg.OpenKey('Software\MyCompanyName\MyApplication\',True);

  if not openResult = True then

    begin

    MessageDlg('无法写入注册表。您的应用程序没有管理员级权限。',

                TMsgDlgType.mtError, mbOKCancel, 0);

    end

  else

    begin

    MessageDlg('允许写入注册表。您的应用程序具有管理员级权限。',

                TMsgDlgType.mtInformation, mbOKCancel, 0);

    end;

  reg.CloseKey();

  reg.Free;

end;

此测试之所以有效,是因为您需要管理员级权限才能写入注册表的HKEY_LOCAL_MACHINE\Software部分。代码段实际上不向注册表写入任何东西,它只请求写入权限。
确保您构建应用程序后,在IDE之外执行它,因为IDE默认情况下会用管理员级别的权限调试应用程序(不尊重应用程序清单)。

相关阅读 >>

Delphi rest客户端程序

Delphi textfile utf8编码读写

Delphi datetimepicker控件日期格式

Delphi 为数字补充前缀0

Delphi html转义

Delphi 如何从html格式的字符串中提取纯文本?

Delphi 提高unigui开发效率的两个方法

Delphi 如何将颜色值转换为html格式?

orangeui作者开源作品

Delphi 如何将颜色值转换为灰度颜色值?

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...