3

我需要gphoto2从 Qt 程序启动。我这样做:

QString gphotoProgram = "/usr/bin/gphoto2";
QStringList gphotoArguments;
gphotoArguments << "--capture-image";
QProcess *gphotoProcess = new QProcess(this);
gphotoProcess->start(gphotoProgram, gphotoArguments);

但它永远不会以这种方式进入Running状态,因为gphoto2通常需要在命令行上启动管理员权限。

我怎样才能QProcess以适当的权利开始gphoto2工作?

编辑:我希望用户不必输入密码,这意味着 gksudo、kdesudo 或任何其他图形解决方案对我来说不是一个有效的选项。

4

4 回答 4

2

我强烈建议找到一种方法来允许 gphoto2 以登录用户的权限运行。也许这篇文章有一些有用的信息。

于 2011-04-11T23:06:27.090 回答
1

如果您的发行版启用了 sudo,请尝试将“gksudo”添加到进程的命令行:

QString gphotoProgram = "gksudo /usr/bin/gphoto2"

如果用户帐户被授权为 sudo-er,它将询问用户密码,以便程序可以以 root 权限运行。

于 2011-04-11T18:44:01.150 回答
1

您还可以使用 PolicyKit 以 sudo 权限启动 QProcess。

pkexec 命令

QString gphotoProgram = "pkexec /usr/bin/gphoto2";

于 2011-05-14T12:11:57.017 回答
0

GNOME 和 KDE 还没有自己的图形 sudo 包装器吗?(我自己是 Windows 用户。)您可以使用 QProcess 启动“sudo”并让它负责提升和随后的 gphoto 启动。

于 2011-04-11T18:43:58.313 回答