2011-05-08 108 views
3

是否有可能通过提升用户权限的QProcess启动完全独立的进程?QProcess用户权限提升

例如,如果我的C++/QT应用程序运行作为一个有限的用户,可我的C++/Qt应用程序开始以管理员权限的另一个独立的过程?

我暗示管理员用户名和密码,可在C++/QT应用程序,它是做第三方应用程序的启动里面。

回答

0

没有直接的方式据我所知,但既然你有管理员帐户的密码,你可以通过runas命令来启动。

如果你不知道runas命令,只需在命令shell中键入它,它应该给你你需要的所有信息。

+0

runas不能正常工作,因为如果我运行runas然后提供所有参数...我不能根据我知道提供密码作为参数。这意味着我得到提示输入管理员密码。我想通过我的应用程序提供该密码。 – user440297 2011-05-08 22:27:40

0

有特定于平台的方式来做到这一点,通过在输入管道。在Linux中,它是

system(“echo PASS | sudo -u root -S1 COMMAND”);

source)这是PHP的,但应该工作amywhere。

1

在Windows中,您应该为您的应用程序创建一个清单,以指定它需要运行的特权级别。然后,您只需启动应用程序。您将在较新的Windows版本上获得UAC提示。但这是必需的,(恕我直言)正确。没有办法解决这个问题。

在linux下,您应该在安装过程中为您的应用程序设置一个粘性位,并拥有您想要执行的操作的正确用户权限。

+0

感谢RedX。良好的信息,但这不能回答我的问题。我的应用程序不需要管理员权限。如果确实如此,我会按照你描述的方式要求这样的特权。我的应用程序启动需要管理员权限的第三方应用程序,并且在我试图避免手动输入pass的问题中。 – user440297 2011-05-14 17:06:24