gpt4 book ai didi

java - 在 Windows Vista 上请求 Java 应用程序的管理员权限

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:04:35 25 4
gpt4 key购买 nike

当我尝试通过 Java ProcessBuilder 类在任务计划程序中创建新任务时,我在 Windows Vista 中遇到拒绝访问错误。在 XP 上它工作得很好。

当我使用“以管理员身份运行”选项时,它也可以在 Vista 上运行..

然而,这是一个额外的请求步骤,用户可能不知道这一点。当用户只需双击应用程序图标时,它将失败并拒绝访问。我的问题是如何强制 Java 应用程序在启动后立即重新获得管理员权限?

最佳答案

您是否考虑过使用 launch4j 将您的 Java 应用程序包装在 .exe 中?通过这样做,您可以嵌入一个 list 文件,允许您为可执行文件指定“执行级别”。换句话说,您可以控制应授予正在运行的应用程序的权限,有效地告诉操作系统“以管理员身份运行”,而无需用户手动执行此操作。

例如……

build.xml:

<target name="wrapMyApp" depends="myapp.jar">
<launch4j configFile="myappConfig.xml" />
</target>

我的应用程序配置文件:

<launch4jConfig>
<dontWrapJar>false</dontWrapJar>
<headerType>gui</headerType>
<jar>bin\myapp.jar</jar>
<outfile>bin\myapp.exe</outfile>
<priority>normal</priority>
<downloadUrl>http://java.com/download</downloadUrl>
<customProcName>true</customProcName>
<stayAlive>false</stayAlive>
<manifest>myapp.manifest</manifest>
<jre>
<path></path>
<minVersion>1.5.0</minVersion>
<maxVersion></maxVersion>
<jdkPreference>preferJre</jdkPreference>
</jre>
</launch4jConfig>

我的应用程序 list :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="highestAvailable"
uiAccess="False" />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>

参见 http://msdn.microsoft.com/en-us/library/bb756929.aspx以及有关模式详细信息的 launch4j 网站。

关于java - 在 Windows Vista 上请求 Java 应用程序的管理员权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/258728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com