0%

生成以管理员权限运行的exe

发布的应用程序如果有敏感操作,如果不是右键应用程序“以管理员身份运行”很可能导致程序出错,那么如何让aardio生成的exe自动申请管理员权限运行呢,方法如下:

方法一

自定义Manifest文件:

首先生成一次EXE文件,可以看到工程目录下自动生成了默认的 /.build/Manifest.xml
可以用记事本打开编辑此文件后在最后一行“</assembly>”之前添加如下代码保存再生成EXE即可。

1
2
3
4
5
6
7
8
9
10

<!-- Identify the application security requirements. -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
        <requestedPrivileges>
            <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
        </requestedPrivileges>
    </security>
</trustInfo>

方法二

aardio文件首行注释:

普通aardio文件,如果首行注释为”//RUNAS//“,那么在aardio中点击【运行】运行该代码时将会请求系统管理权限。

如果在工程的 main.aardio 启动文件首行添加 //RUNAS//,那么将会自动修改 “\.build\default.Manifest.xml“ 文件设置生成的EXE文件启动时需要管理权限。

附注

aardio最新版本标准库已提供 process.admin.isRunAs() 用于判断进程是否以管理方式运行,下面是示例代码:

1
2
3
4
5
6
import console;
import process.admin;

var isAdmin,isXp = process.admin.isRunAs()
console.log("是否Vista,WIN7,WIN8 管理员权限",isAdmin)
console.log("是否XP操作系统",!!isXp)