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 dcc32.exe 参数说明

封装Delphi hook api

Delphi 获取外网ip的函数

Delphi 获取计算机名和用户名

Delphi线程简单创建、挂起、激活与终止

Delphi设置窗口透明

Delphi settimer 用法

Delphi webbrowser ie 窗口选择中,选中的文字内容

Delphi 2009 之 tstringbuilder 类[7]: tostring

Delphi 获取窗体坐标

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



打赏

取消

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

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

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

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

评论

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

    正在狠努力加载,请稍候...