qt调用外部exe程序并且将exe程序一起打包

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt调用外部exe程序并且将exe程序一起打包相关的知识,希望对你有一定的参考价值。

qt调用外部程序exe,我知道用QProcess,现在的问题是外部程序必须也和工程放在一起,别人看了就直接运行exe了,就没有意义了!想像资源一样,调用exe这样别人就看不到我调用的exe,程序到哪都可以用!
对于以上问题,我换了个思路,我想禁止用户鼠标点击exe启动,必须通过我的qt程序才可以启动呢?像qq一样,直接运行安装目录下的qq.exe不能运行,必须通过客户端一样。请问怎么实现呢?速度解决的,加分!!!

你试试作为一个资源来运行看行不行,或者将exe作为一个资源,然后运行时以二进制的形式读取,再将读取到的二进制信息写入到临时文件中,运行临时文件。或者直接将资源中得exe保存到系统临时文件夹中进行运行。
只是个思路,没试过,你试试追问

我和你的思路一样,在资源文件里试过了,不行
qt自带的rcc.exe运行闪过,没办法生成二进制文件

追答

你指的是添加了exe资源的话编译不通过?

追问

编译过了,但是没效果,exe没有调用

追答

将其中资源中拷贝到别的地方再运行,拷贝不了并且文件不大就用二进制读写,把它写到别的地方再运行,读写文件肯定是没问题的

追问

读写正常,但还是不能正常调用外部exe,我换了个思路,补充了问题,您看看您有什么办法没有?

追答

qq的原理我不清楚,不过我觉得肯定是用了底层API,技术难度不清楚,应该是不容易的。你调用其他外部程序试试看行不行,会不会是你的外部程序的问题。

追问

换了个方法,自己已经搞定,还是谢谢你了!

参考技术A 调用应该有个类似PROCESS的方法,打包用打包工具打包追问

你没明白我的意思,我知道用qPROCESS,那的把exe放在程序目录下,我不想让别人知道我调用的是那个exe

追答

有打包工具的,相当于是压缩,然后解压的时候不会显示出来,他就直接运行你的EXE了,他解压到一个临时文件夹,然后会删掉的,就相当于是看不到了 叫 ExeCreator

以上是关于qt调用外部exe程序并且将exe程序一起打包的主要内容,如果未能解决你的问题,请参考以下文章

QT 打包发布应用程序

QT调用外部程序

python 外部传参程序编写并打包exe及其调用方式

python 中 使用 pyinstaller 打包的exe程序如何调用外部模块?

4-QT的程序打包发布(将QT5的工程项目打包成一个exe程序)

Qt打包发布exe