【问题标题】:Don't show the UAC prompt when I run a program运行程序时不显示 UAC 提示
【发布时间】:2018-04-24 14:31:06
【问题描述】:

昨天我问了一个关于 Java 运行时的问题。我自己解决了这个问题,但现在我很想在启动程序时不显示 UAC 提示。 这个程序是一个 exe,它有管理员清单。

代码:

Runtime.getRuntime().exec("cmd /c \"C:\\Program Files (x86)\\CodFiscExtractor\\MySQLServer\\MySqlStart.exe\"");

这样我启动了我的程序,但是,正如我之前所说的,它向我显示了 uac 提示符。

我该怎么办?

【问题讨论】:

  • 启动该程序的程序是否以管理员模式运行?
  • 不,启动那个程序的程序是一个jar
  • 您可以在管理员模式下运行 jars Gabriel。这并不能回答他的问题。不过,这无关紧要,无论哪种方式,您都会看到 UAC 提示。
  • @SpacePrez 哦,好的,抱歉;)谢谢!
  • 在这里使用cmd /c有什么好处?

标签: java runtime prompt uac


【解决方案1】:

如果您通过程序启动的程序需要管理员权限,则会显示 UAC 提示。这几乎就是 UAC 提示的原因!
如果您以管理员身份启动程序,您应该能够以管理员权限执行操作(即没有 UAC),但总会在某个地方或另一个地方出现提示(只要 UAC 未关闭)。

【讨论】:

  • 有没有办法以管理员身份启动程序而不显示uac提示?
  • 不,如果用户没有将 UAC 设置为关闭,则不会。使用 UAC 的原因是为了保护用户免受程序对他们不应该使用的东西的影响,所以当 UAC 提示出现时,用户要么允许或拒绝程序访问管理员权限。如果没有恶意,很少需要“禁用”UAC,所以让它弹出。 :)
  • 那么,几乎不可能不显示uac吗?甚至连蝙蝠之类的东西都没有?
  • 不,如果您需要管理员权限(启动 mysql 服务需要),只要用户没有关闭 UAC 提示符就会出现。
  • 阻止 UAC 对话框出现并非不可能。您只需要应用正确的清单来告诉 Windows“我没有做任何我不应该做的事情”。这可能会有所帮助。 stackoverflow.com/questions/24777660
【解决方案2】:

你不能。这是由 Windows 在操作系统级别控制的。如果程序可以简单地避免它,UAC 将是零分。

要么编写一个不调用可执行文件的程序,要么接受 UAC 将触发。这不是你的选择。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-20
    • 1970-01-01
    • 2021-11-26
    • 2022-11-16
    • 2017-05-10
    • 2011-02-18
    • 2010-10-01
    相关资源
    最近更新 更多