是否可以从Java应用程序中请求提升的权限?我看到的建议似乎都是围绕着运行外部可执行文件或设置清单来在启动时请求权限。例如,这些对于applet是不可用的。有没有办法从正在运行的应用程序中请求提升?
发布于 2009-07-03 01:37:44
UAC不是正在运行的进程可以请求的东西(与您使用哪种语言运行无关)。您必须在启动时请求提升。
大多数windows应用程序处理此问题的方式(并使其看起来像是在请求提升)是生成一个额外的自身副本,请求提升,并将足够的命令行参数传递给新进程,以便可以显示相应的对话框。
这就是为什么对话框中的UAC提升总是通过单击按钮打开一个新对话框来启动的。
因此,在Java世界中,您只需做其他人必须做的事情:再次启动您的应用程序,请求提升。有几种方法可以启动提升,“运行方式”动词可能是最简单的。
发布于 2009-07-02 21:48:51
看起来Sun将不得不在JRE中处理这种情况,因为除了运行外部进程之外,没有其他方法可以执行提升的操作。
如果JRE支持它,JVM可能不得不为请求提升的java代码运行一个单独的、提升的进程。
然而,就目前而言,据我所知,只有清单或运行外部应用程序是唯一可用的解决方案。
问题是,你需要提升做什么?
发布于 2011-05-05 07:40:35
您必须使用外部(本机)应用程序来执行此操作。这篇文章提供了源代码和一个很好的解释:UAC Prompt From Java
https://stackoverflow.com/questions/1076794
复制相似问题