Qt:让程序在执行时要求用户提升(窗口)

时间:2012-07-30 02:47:00

标签: c++ security qt

如何设置程序在执行时要求提升?我在这里和那里问过,但还没有得到答案。我不知道如何做到这一点,但我想写的程序需要运行权限。

2 个答案:

答案 0 :(得分:3)

安全模型特定于平台。 Qt没有AFAIK解决这类问题。 (例如:当我没有以root用户身份运行时,Qt Creator安装程序本身就会被阻塞。)

您可能需要进行本机调用或与为此目的而设计的某个守护进程进行交互。通常最容易尝试你认为你应该做的任何事情,并检查失败,如果你不能做你想做的事情,那么请让用户明确地重新运行更高的权限。

<强> Linux的:

Best way elevate the privileges programmatically under different versions of Linux?

<强>窗:

http://msdn.microsoft.com/en-us/magazine/cc163486.aspx

<强>的Mac:

Escalate App Privileges Programmatically OS X

(注意:如果你不得不问一个类似这样的问题的话,通常可以有更好的方法来做你想做的事情。考虑发一个关于什么更一般的问题你想要的,你可能会得到更干净利落的建议。)

答案 1 :(得分:1)

我认为不可能要求自动提升。

我能想到的唯一方法就是让服务作为本地管理员帐户运行并为您执行提升运行。

我在作为CI Build(Go Agent作为本地系统帐户运行)的一部分自动安装/卸载MSI软件包时使用了这个