栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

java getRuntime()。exec需要UAC的exe

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java getRuntime()。exec需要UAC的exe

如果您的Java应用程序作为Windows服务运行,则它很可能在以下系统帐户之一下运行:SYSTEM(最有可能),LOCAL SERVICE或NETWORK
SERVICE。因此,如果该服务在SYSTEM帐户下运行,则从该服务启动的所有内容都将继承该帐户。无论如何,必须允许您的服务与桌面交互。

总而言之,如果您的流程以提升的方式运行,则从其启动的流程也将以提升的方式运行。


要提升,您必须使用Windows API的ShellExecute或ShellExecuteEx函数。如果您要启动的.exe

level=requireAdministrator
在其清单中带有标记,则外壳将显示UAC对话框。如果未标记,则可以使用
runas
动词/运算来强制执行UAC确认对话框。注意:
runas
在Windows
XP上将显示“以其他用户身份运行”对话框。

如果

Runtime.getRuntime().exec(command)
是通过ShellExecute实现的,则使用适当的清单标记.exe即可;如果
exec
使用CreateProcess,则该进程将以当前用户权限启动,即不提升权限;此外,如果
requireAdministrator
清单中存在.exe,则该过程将完全不会启动。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/470246.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号