【发布时间】:2016-11-23 16:11:17
【问题描述】:
我有一个 QT 桌面应用程序,现在我希望它在启动时也自动调用 openvpn 来启动。
第一次尝试我用一个简单的 system() 调用实现了它,它可以工作,但它会在屏幕上留下 cmd 窗口。我不喜欢它,但它有效:
system("openvpn-gui --connect m2smart.ovpn")
但现在我想直接启动而不需要 cmd 窗口,如果我不带参数执行它,它可以工作,这个:
QProcess openvpn;
QString cmd("openvpn-gui.exe");
openvpn.startDetached(cmd);
现在,我唯一需要的是指出要连接的 config.ovpn,就像在第一个示例中一样,我已经搜索了如何做到这一点,它似乎是这样的:
QProcess openvpn;
QString cmd("openvpn-gui.exe");
QStringList args;
args << "--connect m2smart.ovpn";
openvpn.startDetached(cmd, args);
但它显示了一个 openvpn 窗口,上面写着:
“选项错误:无法识别的选项或缺少参数:--connect m2smart.ovpn”
但是,如果我打开一个 cmd 并输入“openvpn-gui --connect m2smart.ovpn”,它就可以工作,独立于我的工作目录。
所以...有人可以帮助我吗?我被这个困住了。
谢谢!
【问题讨论】:
-
你试过了吗:
QProcess::startDetached("openvpn-gui --connect m2smart.ovpn")? -
@Mike 的工作就像一个魅力......谢谢队友,这么简单的答案,之前没有尝试过。但是我仍然在想为什么我一直在测试的东西不起作用......有什么想法吗?