当前位置:编程学习 > wap >>

QProcess如何打开一个需要用超级用户权限的外部程序

我的代码是在linux下写的,有一个程序,只有在sudo ./burner才可以正常运行,./burner出现的是
QObject::killTimer(): Error: timer id 2 is not valid for object 0xbfbf96f0 (), timer has not been killed这个错误提示然后退出。现在我的需求是要写一个Qt的ui程序打开这个burner程序并使它正常运行,该怎么办啊 --------------------编程问答-------------------- 跪求大神们帮忙啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --------------------编程问答-------------------- gksu .... --------------------编程问答--------------------
引用 2 楼 dext 的回复:
gksu ....

恩,我用了,但是因为starDectched这个是非阻塞的,导致./burner还没有起来,界面就已经开始出现了,因为还有一个问题是ui程序要和burner这个server端程序在启动之初进行socket连接,burner要经过输密码,就比ui启动慢了很多,所以,socket就连接不成功,整个过程就无法执行,该怎么办呢? --------------------编程问答--------------------
引用 2 楼 dext 的回复:
gksu ....

我的代码:
QStringList  list;
list << "-S";
#ifdef __linux
//QProcess::startDetached("./core",list,"",&core_pid);
QProcess::startDetached("gksu ./core",list,"",&core_pid);
#else
QProcess::startDetached("core.exe",list,".",&core_pid);
#endif
ui->setupUi(this);
望大神们帮忙看看,可以解决了这个问题 --------------------编程问答-------------------- 一般 我是 做一个线程,不停的连接,或者 设置链接的 超时时间为 15 分钟 之类的。 --------------------编程问答--------------------
引用 5 楼 dext 的回复:
一般 我是 做一个线程,不停的连接,或者 设置链接的 超时时间为 15 分钟 之类的。

恩,启动线程的方法等我这条路实在走不通了再进行尝试吧。现在想和您讨论一下我的想法。
在理论上来讲,我要启动一个超级用户权限的程序,就上上面代码的core
QStringList  list;

#ifdef __linux
QProcess::start("gksu ./core",list);
while(!p->waitForStarted(4000)){qDebug() << "unstarted";}
#else
QProcess::startDetached("core.exe",list,".",&core_pid);
#endif
ui->setupUi(this);
这个代码在理论上来讲,应该是可以实现我想要实现的功能的,但是现在程序在运行到p->waitForStarted时出现段错误。您说这会是什么问题呢? --------------------编程问答-------------------- where is the definition of p, is p a NULL pointer? --------------------编程问答--------------------
引用 7 楼 dext 的回复:
where is the definition of p, is p a NULL pointer?

我把p = new QProcess(this);注销掉了,但是这个不是影响程序的关键,我加了也是不管用啊! --------------------编程问答--------------------
引用 8 楼 kjy1228436147 的回复:
Quote: 引用 7 楼 dext 的回复:

where is the definition of p, is p a NULL pointer?

我把p = new QProcess(this);注销掉了,但是这个不是影响程序的关键,我加了也是不管用啊!

程序运行结果:
unstarted 
程序异常结束。
补充:移动开发 ,  Qt
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,